我正在阅读一些代码并发现(代码接受文件名和命令行参数)
@ :: ARGS = ($0,@ARGV);
但是,我无法理解这句话的第一部分。它到底在做什么?
它的行为与
@ARGS = ($0,@ARGV);
相同吗?
在你的主程序中你有你的变量
$foo
但也可以通过 $main::foo 到达它 也可以通过
$::foo
如果您包含 .pm 包,例如FOO 然后你可以通过 $FOO::something 来“峰值”到该命名空间
相反:
模块可以将某些内容放入(原始 .pl 的)主命名空间中。
@::ARGS=
和
@ARGS=
如果你在主程序中使用它是一样的
但是从子模块来看,情况是不一样的:一个会写入局部变量,而另一个会写入 main。