in reply to Re: Returning first element of an array from a function
in thread Returning first element of an array from a function

Actually, don't forget it. It may not be an answer to the general case, but it is important to note that split (and a few others) may be able to improve on the general case. I would extend your answer as so:
my $bar = (split /,/, $foo, 2)[0];
This both avoids building the list that AnonyMonk so correctly pointed out above, plus gains the documentation benefits of using slicing.

This isn't possible to do with all cases, but it is quite useful.

------
We are the carpenters and bricklayers of the Information Age.

Please remember that I'm crufty and crochety. All opinions are purely mine and all code is untested, unless otherwise specified.