![]() |
|
Just another Perl shrine | |
PerlMonks |
Passing commands to subroutinesby citromatik (Curate) |
on Jul 01, 2009 at 15:39 UTC ( #776463=perlquestion: print w/replies, xml ) | Need Help?? |
citromatik has asked for the wisdom of the Perl Monks concerning the following question: Hi all, I have encountered a code like this in a production program I couldn't make run:
A sample invocation should be something like:
And if file.txt exists, is a regular file or links to a file and is readable, the command cat file.txt is executed inside the executeComm sub. The problem arises when the file name or its path contains spaces:
This should be a valid invocation, but executeComm will receive the command cat file name.txt, and consequently, will fail. The same would happen if $ perl test.pl 'file name.txt' is passed, and perl test.pl 'file\ name.txt' would succeed, but the file tests on isReadableFile fail A possible patch would be to escape every space after the file tests:
But this seems a weak patch... Is this solution portable? Do you anticipate the appearance of more problems?, how would you solve this in production code? citromatik
Back to
Seekers of Perl Wisdom
|
|