Perl中的"$<"和"$>"是什么意思?

4
非常感谢您的信任,以下是您需要翻译的内容:

如果能提供一个例子会更好。下面是我看到这个问题的一个示例:

请确认是否符合您的要求。
$self->parameter(
    name => 'real_user',
    xpath => undef, 
    default => scalar(getpwuid($<))
);
$self->parameter(
    name => 'production',
    xpath => '/config/production', 
    default => $self->get('user_uid') == $>
);

您可以通过以下方式检查Perl内置变量的perldoc文档:perldoc -v $< - doubleDown
1
@doubleDown:你需要引用该参数:perldoc -v '$<' - Keith Thompson
@KeithThompson,是的,我的错。在所有的兴奋中我忘记了那个。 - doubleDown
1
@doubleDown:你的兴奋点很低。8-) - Keith Thompson
但看起来它在我们公司的环境中没有起作用。 - Jay Wong
2个回答

13

有一个符号后面跟着 $?看看perlvar

$<
此进程的真实用户ID。

$>
此进程的有效用户ID。

使用它们来查找运行程序的用户。


7

来自 perldoc 文档:http://perldoc.perl.org/perlvar.html

$< 

该进程的真实用户 ID。您可以使用POSIX::setuid()同时更改真实用户 ID 和有效用户 ID。由于对$<的更改需要系统调用,请在更改尝试后检查$!以检测任何可能的错误。

助记符:如果您正在运行 setuid,则它是您来自的用户 ID。

$> 

该进程的有效用户ID。例如:
$< = $>;            # set real to effective uid    
($<,$>) = ($>,$<);  # swap real and effective uids

您可以使用POSIX::setuid()同时更改有效UID和实际UID。对$>的更改需要检查$!以检测任何尝试更改后可能出现的错误。

只有支持setreuid()的机器才能交换$<$>

提示:如果正在运行setuid,则它是您要去的UID。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接