Perl打印$(^ b)

时间:2012-04-27 20:13:45

标签: perl

当我找到Perl的$^O时,我很好奇是否有更多这样的变量,因为^让我想起了正则表达式。当我进入

print "$(^b)";

它出现了一些数字:

1000 81 90 91 92 93 100 150 1000

这些是什么意思?这是某种0xdeadbeef吗?

2 个答案:

答案 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;等效名称)。