In addition to what other monks have already said, please note that glob "*"
will return a list of files with their path. So, @files
will contain things such as /some/directory/here/foo.txt
. This is OK for reading the files in the foreach
loop (and this is often what you want), but this:
$outputfile = $inputfile;
open NEWFILE, '>', "$dir/subdirectory/$outputfile" or die "... $!"
will probably fail, or, at the very least, not work as expected, because the new file to be created will look like /some/directory/here/subdirectory/some/directory/here/foo.txt
which is presumably not what you want. So you probably to extract the file name (without the path) before assigning outputfile
or use some other means for creating the list of files.