2014-08-31 2 views
0

왜 다음과 같은 펄 스크립트는 아무 것도 프린트하지 않습니까? 내가 echo 'test' | (while read LINE; do echo \$LINE; done)을 실행하면 sh에서Perl이 쉘 명령을 실행하지 않고 엽니 ​​다.

if (open(my $fh, "| (while read LINE; do echo \$LINE; done)")) { 
    print $fh "test"; 
    close($fh); 
} 

, 나는 test를 인쇄 할 수있을 것으로 예상한다. "\ n"인쇄에, read 이후

+0

추가처럼, 전체 라인을 찾고있다 '; –

+0

감사합니다. 답으로 게시하면 받아 들일 것입니다. – simonzack

+0

사이드 노트,'open my $ fh, "| -", ".."'perl은 세개의 args를'open'으로 선호합니다. –

답변

1

추가이`인쇄 $의 FH "테스트 \ 없음"과 같은 인쇄에 "N \"이

print $fh "test\n"; 
+0

'$ fh-> autoflush'를 사용하면 원하는 것을 인쇄 할 수 있습니다. – Borodin

+1

@ 보 로딘, 그게,'test' + newline이 원하는 것입니다. 인쇄. '$ fh-> autoflush'는 여기서 도움이되지 않을 것입니다. – ikegami

+0

@ikegami 설명의 잘못된 부분을 제거했습니다. 지적 해 주셔서 감사합니다. –

관련 문제