in reply to creating array refs

\(list) isn't valid syntax. And that's what you're doing with split, because split returns a list. You can't take a reference to a list; you can only use a list to build an anonymous array ref.

\@array is valid syntax, because you can take a reference to an array.

The difference is, LIST creates a new anonymous array reference and fills it with LIST; \@ARRAY takes a reference to an existing array.