Blame t/lib/TieEvil.pm

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