我有一個類似的代碼進行排序:用Perl評估和演示
sub mySub{
my $sortMethod = shift;
my @arr = @_;
my @finalArr = eval "$sortMethod @arr";
foreach(@finalArr){
...do something....
}
}
然後我想這樣稱呼它:
mySub('reverse', @someArr);
或:
mySub('sort', @someArr);
,但我得到錯誤:
找到操作員預期的數字(eval 2)line 1,near「1 2」 (Missing operator before 2?) 運營商在(eval 2)第1行,在「2 3」附近發現的號碼 (Missing operator before 3?)
我發送的數組包含1到5的數字(作爲示例)
有人能告訴我我做錯了什麼嗎?
感謝
你爲什麼用eval嗎? – 2013-07-23 09:43:23
,因爲我想根據任何人想要對它進行排序來對數組進行排序,一個特定的情況可能是'sort mySpecificSort()',然後我打印該數組,我想使它動態化,而不是非常具體,只是讓那個調用方法的人指定他自己的排序方法 –