2011-09-21 4 views
8

>:scalar의 의미는 무엇입니까? "THING>"구문은 THING에 의해 지정된 레이어를 사용하는 펄 IO 시스템을 말한다

답변

9

특정 .. 전에 이런 종류의 코드를 참조하지 마십시오. '레이어'에 대해 PerlIO documentation을 확인하십시오. 공통 레이어는 '원시'및 'utf8'입니다.

이 경우 $ stdout을 메모리 내장 파일로 사용할 수 있습니다.이 파일은 STDOUT으로 보내지는 모든 것을 포함해야합니다. 일반적으로 구문을 사용하면 메모리 내 파일을 열고 파일 핸들을 파일에 일반적으로 쓰는 다른 함수로 보내 결과를 수집하거나 입력 할 수 있습니다. 당신이 사용하는 '필요는 없지만,

open my $fh, ">:scalar", \$scalar or die; 
open my $fh, ">", \$scalar or die; 

그것은은 PerlIO에서 제공하고 PerlIO::scalar에 의해 구현되는 것 :

또한 스칼라에 대한 참조 인 "파일"을 열어 같은 결과를 얻을 수 있습니다 '모듈이 기능에 액세스합니다.

+0

'> : scalar'는 무엇을 의미합니까? – asker

+0

처음에 추가했습니다. – Alex

3

Perl은 layered IO system을 사용합니다. 체인의 맨 아래에서 미디어 액세스를 다루는 계층을 찾습니다. scalar은 파일 대신 스칼라에서 읽고 쓰는 것을 처리하는 IO 시스템 계층입니다. 스칼라 핸들위한

open(my $fh, '>:scalar', \$scalar) 

말하는 것은 OS 핸들위한

open(my $fh, '>:unix', $file_name) 

말의 것과 같다. Perl은 이미 스칼라 핸들이며 OS 핸들이 아니라는 것을 이미 알고 있기 때문에 완전히 중복됩니다.

관련 문제