2012-03-17 2 views
0

그것은 단순한 하위의 심볼 테이블을 다시 작성하는 방법을 보여줍니다 여기 Can Perl method calls be intercepted?

보라 가능한 경로 펄의 인쇄 방법에입니다. print 명령은 내가 믿는 목록을 취할 수 있으므로이를 가로 채고 다시 쓰는 올바른 방법은 무엇입니까? 나는 동일한 서명을 유지하면서 인쇄를 지연시키는 프로그램을 얻고 그 대신 출력을 배열로 밀어서 미리 정렬 한 다음 맨 끝에 모든 출력을 역류 시키려고합니다.

답변

7

가로 채기 print은 가로 채 방법이 아닙니다. 파일 또는 소켓에 쓰기를 포함하여 여러 가지 작동 모드가 있습니다. 대신 select function을보고 print이 쓸 기본 파일 핸들을 변경하는 데 사용할 수 있습니다.

IO::Capture에서 사용되는 "묶인"IO 핸들 개념을 살펴보십시오.

+0

감사합니다. 'print "fun ($ abc $ def)"와'print ("fun ($ abc $ def)")'사이에 차이점이 있습니까? 나는 내가 책을 가져야한다는 것을 안다. 아마 그렇다. 그러나 이것은 충돌 과정을위한 것이다. – RichardTheKiwi

+1

No - 그들은 절대적으로 100 % 동등하다. – duskwuff

+0

감사합니다. ''와 ''같은 (와) 함께 발생하는 마법은 PHP에서 다르게 생각됩니다. 당신은 큰 도움이되었습니다! – RichardTheKiwi