2017-11-06 6 views
-1

나는 펄을 배우기 시작했고 파일 핸들을 사용하고 있었다.펄에서 파일 핸들을 사용하는 파일에 STDIN 쓰기

  1. 내 STDIN을 파일에 쓰고 싶습니다. 파일 핸들을 사용하여 어떻게합니까?
  2. FH를 사용하지 않고도 동일한 작업을 수행 할 수 있습니까?

나는 아래했지만, 일한 적이 :

#!/usr/bin/perl 

$file = 'File.txt'; 

open ($fh, '>', $file) or die "Error :$!"; 

print "Enter blank line to end\n"; 

while (<STDIN>) { 

    last if /^$/; 
    print "FH: $fh \n"; 
    print "dollar: $_ \n"; 
} 

close $fh;* 

아래의 작품,하지만 난 왜 이해가 안 돼요.

#!/usr/bin/perl 

open(my $fh, '>', 'report.txt'); 

foreach my $line (<STDIN>) { 

    chomp($line); 

    print $fh "$line\n"; 
} 

close $fh; 


print "done\n"; 
+1

두 번째 경우에는 $ fh로 인쇄하지만 처음에는 인쇄하지 않습니다. –

+1

질문에있는 코드의 형식이 올바른지 확인하십시오. 이번에 다른 사람이 당신을 위해 그것을 고쳤지만, 다른 누군가가 당신을 위해 그것을 할 것으로 기대하는 것은 무례합니다. –

+2

이 사이트를 무료 개인 프로그래밍 튜토리얼의 소스로 취급하는 것은 불공평합니다. 우리는 주로 동료들에게 다루기 힘든 문제를 돕기 위해 구독하고 파일에 글쓰기는 어렵지 않습니다. [** Perl ** 태그에 대한 * 정보 * 페이지] (https://stackoverflow.com/tags/perl/info)에는 많은 훌륭한 자료가 있으며 사용자가 직접 찾아서 배우는 것이 가장 좋습니다. 어쨌든 당신의 과목을 공부해야하며, 여기에 주어진 대답을 뒤집어도 배우는 것은 도움이되지 않습니다. 코스에 대한 접근 방식을 다시 생각해보십시오. – Borodin

답변

3

파일 처리를 위해 파일 핸들 $fh을 열었습니다. 두 번째 예를 인쇄이 핸들 데이터, 그래서 작동 : 출력이 STDOUT로 이동 있도록

print $fh "$line\n"; 

그러나 첫 번째 예는 $fh에 인쇄되지 않습니다.

print "FH: $fh \n"; 
print "dollar: $_ \n"; 

첫 번째 예제가 제대로 작동하려면 올바른 파일 핸들을 사용해야합니다.

print $fh "FH: $fh \n"; 
print $fh "dollar: $_ \n"; 
+0

정말 고마워요. – Ansh007