diff options
-rw-r--r-- | dist/B-Deparse/Deparse.pm | 7 | ||||
-rw-r--r-- | dist/B-Deparse/t/deparse.t | 4 |
2 files changed, 9 insertions, 2 deletions
diff --git a/dist/B-Deparse/Deparse.pm b/dist/B-Deparse/Deparse.pm index 9456ecfcdd..3a46ad42bf 100644 --- a/dist/B-Deparse/Deparse.pm +++ b/dist/B-Deparse/Deparse.pm @@ -4367,9 +4367,12 @@ sub pure_string { return 1; } elsif ($type eq "null" and $op->can('first') and not null $op->first and - $op->first->name eq "null" and $op->first->can('first') + ($op->first->name eq "null" and $op->first->can('first') and not null $op->first->first and - $op->first->first->name eq "aelemfast") { + $op->first->first->name eq "aelemfast" + or + $op->first->name =~ /^aelemfast(?:_lex)?\z/ + )) { return 1; } else { diff --git a/dist/B-Deparse/t/deparse.t b/dist/B-Deparse/t/deparse.t index 3bb6c8aab9..3ddb539441 100644 --- a/dist/B-Deparse/t/deparse.t +++ b/dist/B-Deparse/t/deparse.t @@ -749,6 +749,10 @@ pop @_; # The fix for [perl #20444] broke this. 'foo' =~ do { () }; #### +# [perl #81424] match against aelemfast_lex +my @s; +print /$s[1]/; +#### # Test @threadsv_names under 5005threads foreach $' (1, 2) { sleep $'; |