in reply to Perl Bug?

What are your "globally scoped varbinds"? The portion of code you show seems to be ok, although I'd rewrite it as
open my $ps, '-|', 'ps -eo pid,comm,args' or die "Can't run 'ps': $!\n";
What about some more? I'm sure I would have no problems reading the output of it like thus:
my $output = do { open my $ps, '-|', 'ps -eo pid,comm,args' or die "Can't run 'ps': $!\n"; local $/; <$ps>; };
Also, you may have chosen ps(1) solely as an example, but you may also be interested in Proc::ProcessTable.