http://qs321.pair.com?node_id=794895


in reply to Re: Variable triggers global destruction hang
in thread Variable triggers global destruction hang

What Perl version and system?
Just verified: With an old perl-5.8 I get the different behavior with/without the variable, with perl-5.10 it hangs regardless. It's reproducable (on 5.8) with variables that hold regular expressions, not with variables that hold scalars. Really weird, probably an old bug that got fixed in 5.10.
The "bug" is that file handles aren't closed during global destruction — Perl let's the system do it — so cat is left running, ignored.
Nice, that explains your examples well, but what is the reason that

open FH , "| cat " or die ; open STDOUT, ">&FH"or die ;
hangs while

open FH , "| cat " or die ;
doesn't?