Beefy Boxes and Bandwidth Generously Provided by pair Networks
No such thing as a small change
 
PerlMonks  

Re: system and backticks

by rjt (Deacon)
on Jun 07, 2010 at 15:20 UTC ( #843512=note: print w/ replies, xml ) Need Help??


in reply to system and backticks

For those that learn by example:

my $cmd = 'echo "Hello World" && exit 2'; my $sys_result = system($cmd); print "system() returned `$sys_result'; \$? = $?\n"; my $qx_result = `$cmd`; print "qx// returned `$qx_result'; \$? = $?\n";

Output:

Hello World System returned `512'; $? = 512 qx// returned `Hello World '; $? = 512

In a nutshell, with system, the command's output will not be captured (note how "Hello World\n" goes to the terminal), and you get the exit status as the return value. With backticks, the command's stdout is captured, and you get that output as your return value. In both cases, the child error is available with $?.

If you need to capture standard error, you will need to redirect it to standard output by appending 2>&1 to your command, or perhaps use the completely different IPC::Open3.

Please review How do I post a question effectively? and feel free to ask a more specific question if none of these replies are telling you what you need to know.


Comment on Re: system and backticks
Select or Download Code

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others exploiting the Monastery: (8)
As of 2014-07-13 04:31 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    When choosing user names for websites, I prefer to use:








    Results (246 votes), past polls