나는 알고있다 print
, printf
, die
, , say
은 기능이 다르지만 모두 콘솔에 인쇄한다. 필자는 로깅 프레임 워크를 Perl에 통합하는 프로젝트에서 작업하고 있으므로 기능에 관계없이 Perl에서 콘솔 출력을 출력하는 모든 기능을 알아야합니다.Perl에서 콘솔에 출력을 쓰는 다른 방법은 무엇입니까?
2
A
답변
3
"콘솔"은 약간 복잡한 개념입니다. 실제로 기본적으로 콘솔에 첨부 된 두 개의 파일 핸들이 있습니다. STDOUT은 표준 출력이 쓰여지고 STDERR은 오류 W 경고가 기록되는 곳입니다.
물론, 파일 핸들은 콘솔에 전혀 첨부되지 않을 수도 있습니다. 대부분의 운영 체제는 I/O 리디렉션을 지원합니다. STDOUT은 한 파일에 첨부되고 STDERR은 다른 파일에 첨부 될 수 있습니다.
그리고이 기능 중 많은 기능을 통해 파일 핸들러를 변경할 수 있습니다. 예를 들어, print()
은 선택 사항 인 첫 번째 인수 인 파일 핸들을 취합니다.
print()
과 같은 기능에서 사용되는 기본 파일 핸들을 변경하는 데 사용할 수있는 select
이 있습니다.
perldoc perlfunc에는 "입력 및 출력 기능"목록이 있습니다. 출력을 만드는 것들을 추출하기 위해서는 그 목록을 살펴 보는 것만 큼 간단합니다.
die
은 -warn
STDERR 에 기록 -
print
STDERR 에 기록 - STDOUT
printf
에 기록 -say
STDOUT 에 기록 - STDOUT
syswrite
에 기록 -에 기록 지정된 파일 핸들write
- STDOUT에 쓰십시오
다양한 파일 핸들에 쓰는 새로운 기능을 포함 할 수있는 다른 모듈도 물론 있습니다. 예를 들어 Carp은 carp()
, croak()
, cluck()
및 confess()
과 같은 함수를 정의합니다.이 함수는 모두 STDERR에 씁니다.
감사합니다. @mob. 주변에 사람들이 내 어리석은 오타를 돌보는 것을 알고있다 :/ –
그리고 지정된 소켓에 쓰는'send'가있다. (깊은 아래쪽은 다른 손잡이 임). – Abigail