2013-06-06 4 views
-1

이것은 매우 간단하지만 Google 검색이나 stackoverflow 검색으로도 아무 것도 변한 것은 아닙니다. 사람들이 이런 식으로하지 않는 이유가 있습니까? 죄송합니다. 뭔가 빠진 것 같아요. wc를 사용하여 perl의 # 행을 계산하십시오.

나는
$B = `wc -l $fileB`; 
print "$B\n"; 
@B_array = split /\s+/, $B; #try to split on whitespace 
foreach my $item (@B_array) { 
     print "$item\n"; 
} 

을 시도하지만 어떤 이유로 wc -l의 출력을 분할하지 않습니다.

감사합니다.

마이클

+2

출력 결과는 어떻습니까? 당신은'split ('', $ B)'를 사용할 수 있습니다. – squiguy

답변

1

이것은 분할 문제를 피할 수 있지만,이 같은 사용 고양이는 자원의 낭비로 간주 될 수있다.

$B = `cat $fileB | wc -l`; 

cat filename | wc -l은 라인의 수를 생산 - 그것은 표준 입력에 파이프에서 읽고으로 wc 파일 이름을 얻을 수 없습니다.

@array=split ' ', $B도 사용할 수 있습니다.

+0

cat을 사용하면 어떻게 분할 문제를 피할 수 있습니까? – squiguy

+0

@squiguy, wc 출력에 파일 이름이없는 이유는 무엇입니까? – perreal

+1

@perreal 맞습니다. 숫자가 인쇄됩니다. – squiguy

6

코드는 내 컴퓨터에서 작동하지만 아마도 외부 도구를 사용하지 않는 이유 중 하나 일 수 있습니다. 물론 펄을 기본으로 할 수 있습니다 :

my $lc = 0; 
open my $file, "<", "input" or die($!); 
$lc++ while <$file>; 
close $file; 
print $lc, "\n"; 
+2

또는'$ lc =() = <$file>' – mob

관련 문제