http://www.perlmonks.org?node_id=346409

vacant has asked for the wisdom of the Perl Monks concerning the following question:

Dear monks:

I have the following pretty simple subroutine which finds and returns the next non-empty, non-comment line in an input text file. Comments are lines beginning with "#". dprint() is a printing sub for debugging.

sub nextline { my $fh = shift; my $l; do { $l = <$fh>; if (!defined($l)) { dprint "end of file\n"; return undef } dprint "line is: $l"; next if ($l =~ /^#/); # skip comments $l = clean($l); } until ($l ne ''); # skip blank lines return $l; } ## end sub nextline
This code works perfectly, but for every comment in the input file, Perl complains (even without strict):
Exiting subroutine via next...
What kind of trouble can doing it this way cause, or why is Perl complaining?

Thanks kindly,
Vacant