open FH and open local(*FH) compile down to the same structure
(open *FH), but with a flag set on the rv2gv (*{}) op for the
local case.
B::Deparse was special-casing rv2gv for ops with * in their prototype,
but without consideration for the flag.
my $proto = prototype("CORE::$name");
if (defined $proto
&& $proto =~ /^;?\*/
- && $kid->name eq "rv2gv") {
+ && $kid->name eq "rv2gv" && !($kid->private & OPpLVAL_INTRO)) {
$first = $self->deparse($kid->first, 6);
}
else {
() = (-r $_) + 3;
() = (-w $_) + 3;
() = (-x $_) + 3;
+####
+# [perl #63558] open local(*FH)
+open local *FH;