package TieEvil; # FCGI tied with a scalar ref object, which breaks when you # call open on it. Emulate that to test the workaround: use Carp (); sub TIEHANDLE { my $class = shift; my $fh = \(my $scalar); # this is evil and broken return bless $fh,$class; } sub EOF { 0 } sub TELL { length ${$_[0]} } sub FILENO { -1 } sub SEEK { 1 } sub CLOSE { 1 } sub BINMODE { 1 } sub OPEN { Carp::confess "unimplemented" } sub READ { $_[1] = substr(${$_[0]},$_[3],$_[2]) } sub READLINE { "hello world\n" } sub GETC { substr(${$_[0]},0,1) } sub PRINT { my ($self, @what) = @_; my $new = join($\, @what); $$self .= $new; return length $new; } sub UNTIE { 1 }; # suppress warnings about references 1;