sub getFileHandle{ my $file=shift; my $stream; if($file =~ /\.gz$/){ my $buffer=""; my $tmp_handle=""; gunzip $file => \$buffer or die "gunzip failed: $GunzipError\n"; open $tmp_handle , "<", \$buffer or die "couldn't open stream\n"; $stream = (File::Stream->new($tmp_handle, separator => qr{[\cM\r\n]}))[1]; }else{ open(FILE, "< $file") or die "\ncouldn't open FILE: ".$file.": $! "; $stream = (File::Stream->new(\*FILE, separator => qr{[\cM\r\n]}))[1]; } return $stream; }