2011-04-09 4 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

또한 스칼라 및 무효 컨텍스트에서 이전 Perl에서는'@ _' 배열로 분할됩니다. –

+0

해쉬 테이블에 분할 단어를 배열에 저장하려면 첫 번째 시나리오가 이상적일까요? 옳은? – diesel

+0

예. 일반적으로 스칼라 컨텍스트에서는 split을 사용하지 않는 것이 좋지만 유용하고 읽기 쉬운 경우가 있습니다. 덕분에 – justarobert

관련 문제