Perl :: 特殊字符的使用

问题描述 投票:0回答:1

我正在阅读一些代码并发现(代码接受文件名和命令行参数)

@ :: ARGS = ($0,@ARGV); 

但是,我无法理解这句话的第一部分。它到底在做什么?

它的行为与

@ARGS = ($0,@ARGV);
相同吗?

perl
1个回答
0
投票

在你的主程序中你有你的变量

$foo

但也可以通过 $main::foo 到达它 也可以通过

$::foo

如果您包含 .pm 包,例如FOO 然后你可以通过 $FOO::something 来“峰值”到该命名空间

相反:

模块可以将某些内容放入(原始 .pl 的)主命名空间中。

@::ARGS=

@ARGS= 

如果你在主程序中使用它是一样的

但是从子模块来看,情况是不一样的:一个会写入局部变量,而另一个会写入 main。

© www.soinside.com 2019 - 2024. All rights reserved.