Wait a minute...look at this line of code: my $pid = open2(\*READER, \*WRITER, 'pgp -feast $user_id') You are running 'pgp -feast $user_id' when you mean 'pgp -feast zzSPECTREz'.
Instead try using "pgp -feast $user_id" to interpolate $user_id so pgp doesn't try
literally using user '$user_id'.
That was a typo. In my source I do have it written as my $pid = open2(\*READER, \*WRITER, "pgp -feast $user_id"). Plus I have even tryed it as my $pid = open2(\*READER, \*WRITER, 'pgp -feast zzSPECTREz')