diff options
Diffstat (limited to 'lib/B/Deparse.pm')
-rw-r--r-- | lib/B/Deparse.pm | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/B/Deparse.pm b/lib/B/Deparse.pm index d84d2a2709..6754def76d 100644 --- a/lib/B/Deparse.pm +++ b/lib/B/Deparse.pm @@ -23,6 +23,7 @@ use B qw(class main_root main_start main_cv svref_2object opnumber perlstring OPpCONCAT_NESTED OPpMULTICONCAT_APPEND OPpMULTICONCAT_STRINGIFY OPpMULTICONCAT_FAKE OPpTRUEBOOL OPpINDEX_BOOLNEG OPpDEFER_FINALLY + OPpARG_IF_UNDEF OPpARG_IF_FALSE SVf_IOK SVf_NOK SVf_ROK SVf_POK SVf_FAKE SVs_RMG SVs_SMG SVs_PADTMP CVf_NOWARN_AMBIGUOUS CVf_LVALUE @@ -1261,7 +1262,10 @@ sub deparse_argops { return unless $$kid and $kid->name eq 'argdefelem'; my $def = $self->deparse($kid->first, 7); $def = "($def)" if $kid->first->flags & OPf_PARENS; - $var .= " = $def"; + my $assign = "="; + $assign = "//=" if $kid->private & OPpARG_IF_UNDEF; + $assign = "||=" if $kid->private & OPpARG_IF_FALSE; + $var .= " $assign $def"; } push @sig, $var; } |