my $gpg = "gpg ...options..."; my ($id, $pass, @data) = ('fglock','xxx',"data\n","data\n"); my (@result, @err); unshift @data, $pass . "\n"; $cmd = "$gpg --no-tty --local-user $id --passphrase-fd 0 --decrypt"; my_open3( cmd => $cmd, write => \@data, read => \@result, error => \@err );