in reply to Re^2: Passing commands to subroutines
in thread Passing commands to subroutines

Replacing characters in file names is just plain wrong in Unix. A space is a space, and not something else. And something that isn't a space, just isn't.
#!/usr/bin/perl use 5.010; use strict; use warnings; my $dir = "/tmp/Foo"; mkdir $dir or die; chdir $dir or die; opendir my $dh, $dir or die; my @files = readdir $dh; closedir $dh; say "Got ", scalar @files, " files"; foreach my $char ("\x{20}", "\x{A0}") { my $file = "foo{$char}bar"; open my $fh, ">", $file or die; } opendir $dh, $dir or die; @files = readdir $dh; closedir $dh; say "Got ", scalar @files, " files"; __END__ Got 2 files Got 4 files
See, two different files - one with a space, the other with a non-breaking space. No automatic conversion between them.