That’s what backticks are for. From perldoc perlfaq8
:
Why can’t I get the output of a command with
system()
?You’re confusing the purpose of
system()
and backticks (“).system()
runs a command and returns exit status information (as a 16 bit value:
the low 7 bits are the signal the process died from, if any, and the
high 8 bits are the actual exit value). Backticks (“) run a command
and return what it sent to STDOUT.my $exit_status = system("mail-users"); my $output_string = `ls`;
See perldoc perlop
for more details.