Global symbol "$directory" requires explicit package name (did you forget to declare "my $directory"?) at 1201637.pl line 25. Global symbol "$directory" requires explicit package name (did you forget to declare "my $directory"?) at 1201637.pl line 26. 1201637.pl had compilation errors. #### $ perl -Mstrict -wlE 'unless (0) { my $foo = 42 }; say $foo' Global symbol "$foo" requires explicit package name (did you forget to declare "my $foo"?) at -e line 1. Execution of -e aborted due to compilation errors. #### opendir my $directory, 'C:\\Program Files\\OSNE' or die("Unable to open directory 'C:\\Program Files\\OSNE'\n"); #### Name "main::OUTPUT" used only once: possible typo at 1201637.pl line 34. 1201637.pl syntax OK