說一個Perl函數返回一個數組:如何有選擇地訪問Perl子例程返回的元素?
sub arrayoutput
{
...some code...
return @somearray;
}
我想從這個僅訪問一個特定的數組元素,比方說第一。所以我可以這樣做:
@temparray=arrayoutput(argument);
然後參考$temparray[0]
。
但是這種簡短的參考不起作用:$arrayoutput(some argument)[0]
。
我習慣於Python,也是Perl的新手,所以我仍然在尋找一些簡短直觀的類似python的方法(a=arrayoutput(some argument)[0]
)來獲得這個值。我的Perl程序變得很長,使用像這樣的臨時數組似乎很難看。 Perl有沒有辦法做到這一點?
+1,這個工程。但是我需要創建一箇中間變量來訪問這個值。但這是更好的一步,因爲當我無論如何需要一個變量賦值時,我至少可以使用它。但是在其他情況下,例如'print(foo())[3]'語句或者'if((foo())[3] ...)'語句。 – 2012-03-22 09:43:20
你可以做這兩件事。看到我更新的答案。 – toolic 2012-03-22 12:35:11
請注意,print(foo())[7]'不會按預期工作,因爲perl假定括號屬於函數調用,因此將其解析爲等同於'(print foo())[7] '。但是,'print((foo())[7])'或者更通俗的說法是print +(foo())[7]'將會起作用。 – 2013-12-28 20:07:27