in reply to array push fails

map { push( @{$_ % 2 ? \@odd : \@even }, "+$_" ) } @numbers;
On my (perl 5.24) system, your original code says:
Experimental push on scalar is now forbidden at pf.pl line 13, near "" ++$_" ) "
Update: BTW - "map" is not the best choice for this code, because you are throwing away the result of the map.

Preferred, and more concise:

push( @{$_ % 2 ? \@odd : \@even }, "+$_" ) for @numbers;
Then there is room for optimization:
my @evenodd = (\@even, \@odd); push( @{$evenodd[$_ % 2]}, "+$_" ) for @numbers;

                All power corrupts, but we need electricity.