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


in reply to Capture response from backticks to a file.

I think you're misusing the backticks in your code.

this bit:

my $gpg_command = `gpg --trust-model always -er 12345678 my_file.txt`; print defined($gpg_command) ? $gpg_command : "Command failed\n"
IS capturing the output from the command and then printing it to STDOUT.

But in your open command, you're effectively trying to open a pipe to a command that matches the output from your original backtick command, which should be failing I'd think.

remember that backticks do execute your command, and things get a little simpler. For example:

use strict; use FileHandle; my $fh = FileHandle->new('capture.out',"w"); print $fh `dir`;


dsb
This @ISA my( $cool ) %SIG

Replies are listed 'Best First'.
Re^2: Capture response from backticks to a file.
by Anonymous Monk on Nov 13, 2013 at 19:40 UTC
    It doesn't fail, the backticks executes fine but I can't capture the result to a file still.
      I agree with dsb. You've already run the pgp command and have capured it's output in $gpg_command. Sorry to be dense, but what are you hoping to achieve from the rest of your script?
        You are right, I am over complicating things, I can just use this instead and get it over with:
        system("gpg --trust-model always -er 12345678 my_file.txt 1>/dev/null +");
        From my code, the idea is to control the output from the backticks because I would like to change the output of the file name.