[vox-tech] quoting question in perl
Ted Deppner
vox-tech@lists.lugod.org
Thu, 20 Dec 2001 18:15:01 -0800
On Thu, Dec 20, 2001 at 05:59:00PM -0800, Peter Jay Salzman wrote:
> > system("rm '$filename'");
> > or something similar so that the shell sees the quoting.
>
> cool. i didn't know that the shell would see $filename when it's enclosed in
> single forward quotes.
perl will expand the $filename itself, and pass the ' on to the shell.
Perl will literally call:
/bin/sh -c "rm 'a file'"
If you did the array call, perl would call exec instead directly
exec("rm","a file")
Note that the first way, you get shell interpretation, but w/ the second
call type, perl will try to use exec() unless it sees shell meta
characters, in which case it will revert to a shell call (usually). I
believe this is gone over in detail -- well, crap, just later in that
perldoc -f system entry... heh
If you did system('rm $filename'), which is "string literal quoting",
you'd get $filename seen by the shell.
--
Ted Deppner
http://www.psyber.com/~ted/