几年前,除了我最简单的Perl脚本之外,我对所有的脚本都采用了以下“模式”:(我甚至不记得在哪里第一次看到它,这肯定不是我真正的想法)。
use strict;
...
sub main {
...
}
... possibly more subs ...
... at the end of the file:
#############
# Call main #
&main();
#############
这样做有什么好处吗?我发现代码有点干净,但除此之外,我不确定这是否有任何目的,除了让我的C程序员高兴:-)
感谢来自Perl专家和高级用户的任何见解。(我肯定都不是)
发布于 2011-07-21 00:22:05
这是一个众所周知的限制范围的习惯用法。https://stackoverflow.com/q/1183876#comment-1012787ff中对此进行了讨论。和http://use.perl.org/comments.pl?sid=43991&cid=70918ff。
发布于 2011-07-21 03:07:14
它提供了一个范围来避免在subs中意外地使用错误的变量。{ ... }
也会这样做,但是使用sub允许将主代码放在文件的顶部,同时仍然执行文件中的其他初始化代码。
就我个人而言,我已经用过
{
... # Extract command line switches from @ARGV
... # Perform input validation
exit(main(@ARGV));
}
发布于 2011-07-20 23:20:11
收益?不,除非你需要重新使用主子节点。在某些情况下,它可能会简化可读性,但我对此表示怀疑。
不同的一点是,命令如下:
my $arg = shift;
将影响@_
而不是@ARGV
,并且@ARGV
不会自动传递给main()
。在sub中,@ARGV
仍然可见,但您必须显式地将其移位为shift @ARGV
。
https://stackoverflow.com/questions/6763987
复制相似问题