#!/usr/bin/env perl use v5.36; use strict; use warnings; use Carp; # --------- make demo file open(my $ofh, '>', 'exists.dat') or croak($!); for(1..3) { print $ofh "BLA\n"; } close $ofh; #--------- print "exists.dat has ", countLines('exists.dat'), " lines\n"; my $linecount = 0; foreach my $fname (qw[exists.dat doesnotexist.dat]) { $linecount += countLines($fname); } sub countLines($fname) { my $linecount = 0; open(my $ifh, '<', $fname) or croak("$!"); while((my $line = <$ifh>)) { $linecount++; } return $linecount; } #### $ perl carptest.pl exists.dat has 3 lines No such file or directory at carptest.pl line 26. main::countLines("doesnotexist.dat") called at carptest.pl line 21