Beefy Boxes and Bandwidth Generously Provided by pair Networks
more useful options
 
PerlMonks  

Re: Re: Re: PIPE problem

by MarkM (Curate)
on Feb 22, 2003 at 17:05 UTC ( [id://237765]=note: print w/replies, xml ) Need Help??


in reply to Re: Re: PIPE problem
in thread PIPE problem

You are missing a critical point... qx/COMMANDLINE/ or system("COMMANDLINE") invokes /bin/sh with the -c option like so: (on WIN32, this is of course a little different)

execl("/bin/sh", "-c", COMMANDLINE);

The quotes in COMMANDLINE are not being ignored or parsed by Perl. They are being handled by /bin/sh. Notice that at a /bin/sh prompt, if you were to type:

$ echo "Hello World" Hello World

For the original example, the poster was trying to do:

$ SQLCOMMAND; | sqlplus ...

It should have been:

$ echo "SQLCOMMAND;" | sqlplus ...

The shell uses the quotes to group arguments. The quotes are not passed through to the command (again, under WIN32, this is a little more convoluted).

The original problem posted was two-fold. First, as the initial responder suggested, the poster should have used 'echo "SQLCOMMAND;"' not 'SQLCOMMAND;'. As a later responder suggested, the poster should not be using both qx// and system() as both will execute the command. Either system() should be used if the output does not need to be intercepted, or qx// should be used if the output does need to be intercepted.

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others exploiting the Monastery: (4)
As of 2024-04-25 05:21 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found