Perl은 스크립트의 일부 내용과 기타 내용을 화면에 출력합니다.

Perl은 스크립트의 일부 내용과 기타 내용을 화면에 출력합니다.

Perl 스크립트를 통해 특정 출력을 화면 및 기타 선택된 출력으로 파이프하려면 어떻게 해야 합니까?

답변1

다른 파일 핸들을 사용합니다.

STDOUT기본적으로 및 가 모두 있습니다 STDERR. Perl의 함수는 print실제로 print STDOUT.

터미널에는 STDOUT파일 핸들이 제공 1되고 STDERR파일 핸들이 제공됩니다 2.

다음은 각 파일 핸들에 인쇄하고 각 파일 핸들을 /dev/null로 리디렉션하는 예입니다.

$ perl -e 'print STDOUT "foo\n"; print STDERR "bar\n";'
foo
bar
$ perl -e 'print STDOUT "foo\n"; print STDERR "bar\n";' 1> /dev/null
bar
% perl -e 'print STDOUT "foo\n"; print STDERR "bar\n";' 2> /dev/null
foo
  • 첫 번째 명령은 둘 다 인쇄합니다.
  • 두 번째 명령은 삭제 STDOUT하고 인쇄만 합니다.STDERR
  • 세 번째 명령은 삭제 STDERR하고 인쇄만 합니다.STDOUT

또한 고유한 파일 핸들(예: 로그 파일)을 선언하고 해당 파일 핸들로 인쇄할 수도 있습니다. 바라보다 perldoc -f open.

답변2

Perlipc 문서, 특히 명명된 파이프에 대한 섹션을 읽어보는 것이 좋습니다.

http://perldoc.perl.org/perlipc.html#Named-Pipes

perlipc - Perl 프로세스 간 통신(신호, fifo, 파이프, 안전한 하위 프로세스, 소켓 및 세마포)

외부 프로그램과의 양방향(읽기 및 쓰기) 통신이 필요한 경우 IPC::Open2 또는 IPC::Open3 모듈(표준 Perl 라이브러리, 위의 URL에도 설명되어 있음)이 유용할 수 있습니다.

관련 정보