这两天在看Perl,发现Perl的精髓真的跟其强调的--“
There's More Than One Way To Do It. ”;但问题是太混乱了。。。
研究了下面简单脚本,我整个人都震惊了。。。
sub T {
my $n = @_;
print $n;
print @_;
print $#_;
}
T(1, 2, 3);
第一个print打印了$n, 显示了参数个数;第二个print打印@_,按照习惯思维,应该跟$n是一样的,No,No,No,它显示了@_的内容;而第三个print打印的是$_数组的最大边界值。。。反正三种方法都能得到参数个数。。。
更崩溃的是下面这句,也能检测参数个数。。。
print (@_ == 3);
都说Perl的发明者
Larry Wall获得过两次
IOCCC,看来这个,我一点不奇怪了--他Y是故意把Perl搞成这样的。。。