perl - 为什么要指派给 $$?

  显示原文与译文双语对照的内容

perldoc perl5150delta说:

   $$ can be assigned to
       $$ was made read‐only in Perl 5.8.0.  But only sometimes: "local $$"
       would make it writable again.  Some CPAN modules were using "local $$"
       or XS code to bypass the read‐only check, so there is no reason to keep
       $$ read‐only.  (This change also allowed a bug to be fixed while
       maintaining backward compatibility.)

$$是当前进程ID,到底为什么会指定给?

时间: 作者:

只有几个( 字面上) 地方CPAN人们想要分配给 $$,它主要用于测试( I 也听不懂 IPC::Messaging然而) 。 我不喜欢此功能,特别是由于有一个更好的方法来获得同样的效果。 Perl 5 Porters添加此功能,因为它们可能他们不想使几个案例更好地测试。 如果读取p5p线程,显然,这个功能的产生不是由于需要。

我写作这本书在 Hide低级别详细信息接口后

但是,也可能我是错在此因为我不是那么在行低级别黑色魔术。 我知道有一个需要的坐标PID,但到目前为止我认为 $$不是唯一的几种办法。 如果你有一个用例,用户得向我解释,我会更新这个帖子。

作者:

IPC::Messaging,它提供可以说是有点Erlang像消息传递( 不是表演聪明人语法明智) 能够做到 $$将它替换为一个对象,该对象numifies原始pid 。 这样做是怀有一种方便引用到" 进程" 可以调用哪一个方法在( = 发送消息) 。

全面披露: 我在模块的作者发生变化。

作者:

如果你是syscall的implemenation fork( ) 像系统调用则需要分配给全局一个。

作者:
...