http://qs1969.pair.com?node_id=519938


in reply to Re: using a pipe
in thread using a pipe

not exactly... what I am doing is cating a file that has the clear text passphrase in it then piping this output as inout to the gpg binary for decryption like so:
cat file |gpg --passphrase-fd 0 --decrypt --output oldfile newfile
I do not understand what
my $enc_pass = shift( @{ [ <$file> ] } );
is doing? Is this the same as:
for (;<FH>;) { print $_; }
what does $gpg_out have in it?

Replies are listed 'Best First'.
Re^3: using a pipe
by wazzuteke (Hermit) on Dec 30, 2005 at 15:28 UTC
    Sorry for the confusion:

    my $enc_pass = shift ( @{ [ <$file> ] } );
    Will simply take the first line within the file, whose handle is stored in the $file variable, treat the handle like a listed de-referenced array-ref and shift that first line into the $enc_pass variable.

    For example, if your file contains:
    ENCRYPTED_PASSWORD
    when you:
    print $enc_pass;
    you will get the output:
    ENCRYPTED_PASSWORD
    For $gpg_out, that is the handle to the command line gpg call. Another method of this would be to use backticks such as:
    my $gpg_output = `gpg --passphrase-fd 0 --decrypt --output oldfile new +file`;
    Simply enough, the backticks will automagically run the command specified, giving the output back to the $gpg_output variable.

    Hope this all clarifies!

    ---hA||ta----
    print map{$_.' '}grep{/\w+/}@{[reverse(qw{Perl Code})]} or die while ( 'trying' );