in reply to RE and BASH and mean file name shell quoting

Actually, you want to use the list form of system and/or exec. If you have perl 5.8, you can also use the long form of open, such as open my $fh, '-|', 'some_cmd', $mean_file_name. Because you may be surprised when something changes with a shell upgrade, or a shell change. e.g., you give your script to a C-shell-wielding wizard.

Oh, and you missed !. But if you used the multi-arg version of system, exec, and open, it wouldn't matter since you wouldn't be using any shell.

I actually had a recent escapade like this at work with a coworker trying to escape things for a system call. In C. Then I told her to stop that, and use fork and exec with the array form of exec. Problem solved. Otherwise, I would have been able to come up with scenario after scenario where her code broke, so better to just fix it once, by completely ignoring the shell.

(Yes, I know that perl always calls /bin/sh. Unless some crazy goes and modifies $Config::Config{sh}. But don't do that.)