나는 변수 $results
다음 foreach
루프에 의해 생성 한Perl에서 탭 문자로 변수를 분할하는 방법은 무엇입니까?
my $result = "";
foreach $c1(sort {$a<=>$b} keys %info) {
$result .= $c1 . "\t" .
join(',',@{$info{$c1}->{var1}}) . "\t" .
join(',',@{$info{$c1}->{var2}}) . "\n";
}
나는이
a b c
c d e
f g h
과 같은 결과 이렇게 거기 \t
로 구분 세 개의 열이 있고 라인에 의해 분리를 인쇄하는 경우 \n
. 이제이 변수를 탭으로 변수 $results
으로 분할하여 3 열로 끝내기를 원합니다. while 루프를 사용하여이 작업을 시도했지만 작동하지 않습니다.
while($result){
my @columns = split("\t");
}
무엇이 잘못 되었나요?
그래, 무슨 뜻인지 알 겠어. 나는 정말로 무한 루프를 만들고 있었다. 하지만 이제 어떻게 첫 번째 열의 값에 액세스 할 수 있습니까? 이후 다른 파일의 값과 비교해야합니다. – user1987607
'my @first = map $ _-> [0], @ results'를 사용하여 첫 번째 열의 값을 수집 할 수 있습니다. 그러나 목표를 달성하기 위해 아주 먼 길을가는 것처럼 보입니다. 나는 더 큰 그림을 보지 않고는 더 잘 도울 수 없다. – Borodin
첫 번째 열에 값의 목록을 원한다면 아무것도 넣지 말고 왜 처음에'join' 표현식을 포함 시켰는지 궁금합니다. 내 대답에 당신이 선호하는 다른 해결책을 추가했습니다. – Borodin