in reply to Re^2: Pattern Matching in Cygwin Perl vs. Win32 Perl
in thread Pattern Matching in Cygwin Perl vs. Win32 Perl

I disagree completely with your first point. If you need to know on what line an I/O error occured, something is horribly wrong with your error handling. Users must not have to dig into a program to find and address the cause of errors under their control (as opposed to a programming error).

I agree with the other changes, but I didn't want to venture far from the topic until the OP's problem became known. How I write it:

open(my $fh_log, '>>', $qfn_log) or die(qq{Cannot open log file "$qfn_log": $!\n});