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


in reply to Re: Executing a external command
in thread Executing a external command

There is a backtick after dir missing.

Replies are listed 'Best First'.
Re^3: Executing a external command
by ww (Archbishop) on Sep 01, 2006 at 14:48 UTC
    Thank you, reneeb, both for the knowledgable reply, and for the resultant lesson...

    "Resultant Lesson" you say?

    Well, I was busy drafting a scathing [and undoubtedly -- ;-) -- brilliant ] diatribe on the difference between quotes and operators -- en route to exposing my misunderstanding [ ignorance! ] here, when I needed to check perlop for a precise definition on a minor point in my argument, only to there discover that, in fact, quotes are (sometimes, in effect) operators ( think "interpolation" ).

    In perlop | Regexp Quote-Like Operators | qx/STRING/ one will find (as I did) a subhead: `STRING` and there discover that the examples make the requirement for a closing backtick clear. (Fact is, I have not yet found where the documentation makes that explicit, but other authorities offer statements like "Remember, the string (system command) to be executed and its arguments must be followed by a(nother) backtick."

    Bottom line?

    C:\foo>perl -e "print `dir`;" <snip> Directory of C:\foo 08/31/2006 10:06a <DIR> . 08/31/2006 10:06a <DIR> .. 11/21/2003 02:49p <DIR> .c-- 11/21/2003 02:49p <DIR> .c# <snip> ...

    reneeb's Re^2: Executing a external command is correct. Thank you again.