my $log = '/home/tsec/prototype/logs/extractedlogs/cowrieresult.log'; open(my $data, '<', $log) or die "Can't open '$log' for reading: $!"; tester($data); close $data or die "Can't close '$log': $!"; sub tester { my ($fh) = @_; while (<$fh>) { ... } ... }