cog has asked for the wisdom of the Perl Monks concerning the following question:
Here's some code:
package FileHandle::A; sub TIEHANDLE { my $self = shift ; my $fh = [ shift ]; bless \$fh => $self; } sub PRINT { my $self = shift; my @list = @_; my $fh = $$self->[0]; print $fh @list; } tie *STDOUT, 'FileHandle::A', *STDOUT; print "testing";
Basically, I was getting a Deep recursion error and I tried minimalizing the error to post here. The code I present here segfaults on my machine.
I think I know why... PRINT calls print which calls PRINT which calls print which calls... you get the idea...
I tried a bunch of things already, including CORE::print() and even passing a special parameter to stop the recursion, which indeeds stops it, but... doesn't print.
I know the example looks weird; it really isn't what I want to do, but it demonstrates my problem. Can anyone point me in a direction that solves it?
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Solving Deep recursion with a tied Filehandle
by runrig (Abbot) on Oct 14, 2005 at 16:53 UTC | |
by ikegami (Patriarch) on Oct 14, 2005 at 18:39 UTC | |
by cog (Parson) on Oct 15, 2005 at 18:03 UTC | |
by ikegami (Patriarch) on Oct 15, 2005 at 22:21 UTC | |
by cog (Parson) on Oct 16, 2005 at 14:17 UTC | |
| |
by cog (Parson) on Oct 14, 2005 at 16:58 UTC | |
|
Re: Solving Deep recursion with a tied Filehandle
by Anonymous Monk on Oct 14, 2005 at 17:00 UTC |