The following works for me?
Update: Note: I had to change the anonymous sub slightly to use @_ instead of $_[0]. Only the first argument to the print statement was being output.
#! perl -slw use strict; use Filter::Handle; open FH1, '>', 'my.log' or die $!; open FH2, '>', 'myother.log' or die $!; tie *FH1, 'Filter::Handle', \*FH2, sub{ @_ }; ## << NOTE THE CHANGE!!! print FH1 'Hello world!', $_ for 1 .. 10;
The test
P:\test>del *.log P:\test>dir *.log Volume in drive P is Winnt Volume Serial Number is D822-5AE5 Directory of P:\test File Not Found P:\test>262848 P:\test>dir *.log Volume in drive P is Winnt Volume Serial Number is D822-5AE5 Directory of P:\test 03/06/04 04:32a 0 my.log 03/06/04 04:32a 151 myother.log 2 File(s) 151 bytes 387,018,752 bytes free P:\test>type myother.log Hello world!1 Hello world!2 Hello world!3 Hello world!4 Hello world!5 Hello world!6 Hello world!7 Hello world!8 Hello world!9 Hello world!10
That said, I'm not quite sure why you would do this? If all the print statements you wish to re-direct already print to an filehandle, why not just open the desired output file as that handle?
In reply to Re: Re: Re: Filter::Handle - Deep Recursion Error
by BrowserUk
in thread Filter::Handle - Deep Recursion Error
by bayruds
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |