in reply to Re^2: Type of arg 1 to shift must be array (not sort)
in thread Type of arg 1 to shift must be array (not sort)

I don't know why you'd waste the time and space to array-ify the return value when a literal slice will work just as easily for those. Instead of:
my $result = shift @{[some list function]};
just write
my $result = (some list function)[0];
A whole lot easier on the CPU and the eyes. That's why I invented the literal slice (one of the few things I can lay direct claim to in Perl).

Of course, if you're going to store it into a scalar like this, you can simplify it further:

my ($result) = some list function;

-- Randal L. Schwartz, Perl hacker
Be sure to read my standard disclaimer if this is a reply.