package fakeCGIFile; use base IO::File; my %filenames; sub new { my $class = shift; my $filename = shift; my $self = $class->SUPER::new("<$filename"); $filenames{fileno($self)} = $filename; bless($self,$class); } use overload '""'=>sub { my $self = shift; my $filename = $filenames{fileno($self)}; return $filename; };