Beefy Boxes and Bandwidth Generously Provided by pair Networks
Your skill will accomplish
what the force of many cannot
 
PerlMonks  

Re: Executing a external command

by ww (Archbishop)
on Aug 31, 2006 at 15:04 UTC ( #570612=note: print w/replies, xml ) Need Help??


in reply to Executing a external command

Interestingly... on W2k with AS 5.8.6

C:\foo\>perl -e "print `dir;" Can't find string terminator "`" anywhere before EOF at -e line 1.

    ...and yes, that is a backtic before dir.
Did it need to be escaped? Or am I truly deep into Altz-a-whatchamajig?

UPDATE See reneeb's shot of brainpower, immediately below.

However ...

C:\foo\>perl -e "system 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# <snipped - no further interest here ... >

...and...

C:\foo\>perl -e "$cmd=system(dir);print $cmd;" <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# <snipped> 3 File(s) 2,731 bytes 9 Dir(s) 67,502,247,936 bytes free 0 <=== There is the UNshifted system status/return code referenced abo +ve.... C:\foo\>

Replies are listed 'Best First'.
Re^2: Executing a external command
by reneeb (Chaplain) on Aug 31, 2006 at 15:41 UTC
    There is a backtick after dir missing.
      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.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://570612]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others cooling their heels in the Monastery: (11)
As of 2019-12-09 13:11 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found

    Notices?