当我找到Perl的$^O
时,我很好奇是否有更多这样的变量,因为^
让我想起了正则表达式。当我进入
print "$(^b)";
它出现了一些数字:
1000 81 90 91 92 93 100 150 1000
这些是什么意思?这是某种0xdeadbeef
吗?
答案 0 :(得分:12)
我认为你只是打印出$(的价值。
这个过程真正的gid。如果您在同时支持多个组成员身份的计算机上,则给出一个空格分隔的组列表。第一个数字是getgid()返回的数字,后续数字是getgroups(),其中一个可能是与第一个数字相同。
但是,分配给$的值(必须是用于设置真实gid的单个数字。因此$给出的值(不应该分配回$)(不强制数字,例如加零)。这与列出的有效gid($)不同。
您可以使用POSIX :: setgid()同时更改真正的gid和有效的gid。对$的更改(要求检查$!以在尝试更改后检测任何可能的错误。
以下是比较:
diff <(perl -le 'print "$(";') <(perl -le 'print "$(^b)";')
1c1
< 20 20 402 12 33 61 79 80 81 98 100 204 401
---
> 20 20 402 12 33 61 79 80 81 98 100 204 401^b)
答案 1 :(得分:1)
请参阅perldoc perlvar
上的文档,了解所有各种内置变量的列表(以及它们的use English;
等效名称)。