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.