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'.