http://www.perlmonks.org?node_id=597746


in reply to getting the output of command in variable

You may want to review your use of system() and check the manual (perlfunc) for that command. It tells you that system() is not for capturing the output of the command performed.

You're probably looking for backticks or the qx{} operator. These (usually) interpolate, so you can use variables in the command invocation. See perlop for more information. It also contains pointers on redirecting the STDOUT and STDERR for your command.

The code below printed "2007-02-01 15:14:19 CET" on my console.

#!/usr/bin/perl use strict; use warnings; my $date_cmd = '/bin/date'; my $date_format = q{ "+%Y-%m-%d %H:%M:%S %Z" }; # See date(1), str +ftime(3) chomp(my $date = qx{ ${date_cmd} ${date_format} } ); print "${date}\n";

Update: Pretty-printed code; added reference to output redirection (perlop manual); fixed tense in text.