這兩天在看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搞成這樣的。。。