X-Git-Url: http://git.vpit.fr/?p=perl%2Fmodules%2FSub-Nary.git;a=blobdiff_plain;f=lib%2FSub%2FNary.pm;h=a6b97e0f401d0ab56a0b47281c7cc817ce22eff7;hp=707a2e627ee25228b9bc20432c6237014c661d3e;hb=50a68c0adea943d70170c8e5387d703a045f90e7;hpb=097f9bafa7a1857d2798ab96fe54239c7464a97c diff --git a/lib/Sub/Nary.pm b/lib/Sub/Nary.pm index 707a2e6..a6b97e0 100644 --- a/lib/Sub/Nary.pm +++ b/lib/Sub/Nary.pm @@ -441,7 +441,17 @@ sub pp_rv2av { return (name($op) eq 'const') ? $self->expect_any($op) : 'list'; } -sub pp_aassign { $_[0]->expect_any($_[1]->first) } +sub pp_aassign { + my ($self, $op) = @_; + + $op = $op->first; + + # Can't assign to return + my ($p, $r) = $self->expect_list($op->sibling); + return $p => 0 if not exists $p->{list}; + + $self->expect_any($op); +} sub pp_leaveloop { $_[0]->expect_return($_[1]->first->sibling) }