in reply to Perl DosGlob fails after first evaluation of regex

Below is the code which does the above.

No it doesn't.

You stripped too much or something is seriously broken in the code, e.g. the variable $dir is used but never assigned. Apart from that: Your process_file() function has 2 problems - the first one is that you open/close the logfile file handle for every file that is being processed. The other one is

sub process_file { ... if (-f $dummy) { ... open(my $fh, ... ... } close $fh; }

'close()' is useless because by the time it is reached the variable $fh is no longer in scope. You're not a friend of strict and warnings, right?