4.2. Trapping Command Output with `...`
The backticks (or more generally qx{ ... }), can be used to trap the output of a shell command. It executes the command and returns all of its output. Interpolation is used.
If assigned to a scalar, it returns the output as a complete string. If the output is assigned to an array, the array will contain the lines of the output.
Here is an example for a program that counts the number of directories in a directory that is given as an argument:
#!/usr/bin/perl use strict; use warnings; my $dir = shift; # Prepare $dir for placement inside a '...' argument # A safer way would be to use String::ShellQuote $dir =~ s!'!'\\''!g; my $count = `ls -l '$dir' | grep ^d | wc -l`; if ($?) { die "Error returned by ls -l command is $@."; } if ($count !~ /(\d+)/) { # Retrieve the number via the special regex variable $1 $count = $1; print "There are $count directories\n"; } else { die "Wrong output." }