summaryrefslogtreecommitdiff
path: root/lib/B/Deparse.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/B/Deparse.pm')
-rw-r--r--lib/B/Deparse.pm6
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;
}