in reply to Mac Space in Path
First off, you should check that the open call returns successfully, e.g.:
open FILE, "$metadata_file" or die "Could not open '$metadata_file': $!\n";
Which in this case, I believe, would tell you that the file does not exist. The trouble is that if there's a space in the path, then that really is a part of the file, so you're asking for a completely different file by removing the space.
Note that chomp would have already removed trailing spaces, so your listed regex is redundant.
I think you can simply pass the filename to open without modifying it to remove spaces. If not, then you need to escape the spaces rather than removing them. For instance, the file name "foo bar.txt" would become "foo\ bar.txt".
"There is no shame in being self-taught, only in not trying to learn in the first place." -- Atrus, Myst: The Book of D'ni.