Perl 5 has some unexpected weirdness with shift() and pop() which hinders the writing of pipelined code. Bad workarounds exist, however I'd much rather find a good solution.

#!/usr/bin/env perl
use warnings;
use strict;

$_ = "foo w00 boo";

print shift split; # this breaks

sub car { return shift }

print car split; # this works

We use the auto-coaxing of lists into arrays through the @_ subroutine data passing as a workaround. I'd much rather just replace shift() and pop() with ones that do the right thing.