the only true question here was not formulated by the OP.
There is something not so easy to spot in our beloved language. At least i needed quite a bit to understand this clearely.
There are lists. Lists are
unordered collections of values themselves. Lists are declared as
() or qw().
Sometimes happens that we store lists in arrays, the container that holds an ordered list. (intermediate Perl, Chapter 3).
so
return (); or simply
return; means 'please Perl consider i want to return an empty list'. while
return [] means something like: 'Dear Perl, i've just spawned a new anonymous array, he kindly give back to me a reference to himself, can you return that reference? Thanks.'
Just to be sure of the terminolgy i searched here around and i found this old and interesting thread where a bounce of Perl magicians (not the OP) debate this topic in detail:
Scalars, Lists, and Arrays.
HtH
L*
update: as
dsheroh said i had to say ordered instead of unordered (what my poor english would express was inaccesible via index).
Correct the sentence. The original is in the post below.
L*
There are no rules, there are no thumbs..
Reinvent the wheel, then learn The Wheel; may be one day you reinvent one of THE WHEELS.