http://qs321.pair.com?node_id=924843


in reply to Spaces in file names passed as arguments

Using find and double quoting the {} in an exec allows you to do the whole library in one pass
find ./ -name \*\ \* -exec perl -e ' for (@ARGV){$new=$_;$new=~s/\s+/_ +/g;rename($_,$new);}' "{}" \;
Works for me

print "Good ",qw(night morning afternoon evening)[(localtime)[2]/6]," fellow monks."