-1

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

print "$(^b)";

它提出了一些数字:

1000 81 90 91 92 93 100 150 1000

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

4

2 回答 2

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)
于 2012-04-27T20:17:37.033 回答
1

perldoc perlvar有关所有各种内置变量的列表(以及它们的use English;等效名称) ,请参阅文档。

于 2012-04-27T20:17:44.647 回答