我有一個函數(我們稱之爲foo($array_reference, ...)
),它需要其他參數中的數組引用。我希望foo
將數組引用從傳遞給它的參數列表中直接移到數組中,而不必將它作爲數組引用移出,然後單獨將其轉換爲數組。如何將通過數組引用直接移入數組?
我想應該是這樣的:
my @bar = @{shift};
我不想要什麼,但我現在堅持:
my $bar = shift;
my @bar = @{$bar}
後一種方法廢物線,浪費內存,並導致我以熱烈的激情憎恨這類Perl代碼的作者。請幫助?
你如何看待浪費內存? – Ether 2010-10-20 17:25:47
事實上,爲了編寫可讀的代碼,我浪費了那幾行,並寫了我的$ bar = shift; my @bar = @ $ bar; 經驗告訴我不要寫perl golf,至少在生產代碼中。 – jira 2010-10-20 20:36:58
@Ether:浪費內存導致您有一個額外的變量($ bar)實例化,您永遠不需要。 @jira:它很醜,可讀性較差。您正在創建您永遠不需要的額外變量,並將應該只需要一行的任務分解爲兩部分。我將所有複雜的語句分隔成多個語句/行,但這隻有在[i]必要時才應該完成[/ i]。把簡單的任務分解成單獨的語句是浪費的,可讀性較差,應該避免IMO。 – Eli 2010-10-21 20:39:33