Beefy Boxes and Bandwidth Generously Provided by pair Networks DiBona
We don't bite newbies here... much
 
PerlMonks  

Re: Executing a external command

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

This is an archived low-energy page for bots and other anonmyous visitors. Please sign up if you are a human and want to interact.


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 11: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
Domain Nodelet?
Node Status?
node history
Node Type: note [id://570612]
help
Sections?
Information?
Find Nodes?
Leftovers?
    Notices?
    hippoepoptai's answer Re: how do I set a cookie and redirect was blessed by hippo!
    erzuuliAnonymous Monks are no longer allowed to use Super Search, due to an excessive use of this resource by robots.