2011-04-09 51 views
2

我想知道這兩者之間有什麼區別?推入Perl中的數組差異

方案1:

my @something = split(someregularexpressionhere, $somethinghere); 
push(@{$hastable{$keyname}}, @something); 

方案2:

my $something = split(someregularexpressionhere, $somethinghere); 
push(@{$hastable{$keyname}}, $something); 

回答

3

在第一種情形,是split在陣列上下文,所以@something包含從分離導致字符串列表。在第二種情況下,split處於標量上下文中,因此$something包含找到的字段數。

+0

另外,在標量和無效上下文中,它分裂成較老的Perls中的'@ _'數組。 – 2011-04-09 20:22:35

+0

因此,如果我想將分詞存儲在散列表中的數組中,第一種情況會是理想的嗎?正確? – diesel 2011-04-09 20:25:38

+0

是的。一般來說,我會避免在標量上下文中使用分割,儘管在特定情況下它是有用和可讀的。 – justarobert 2011-04-09 20:27:49