in reply to Explaining small Code

RTFM - the use of perldoc -f split will provide the answer to your first question ... and indeed, to a degree, your second question...

push() pushes all its' args onto the array given as the first arg, so you need to dereference the numbers array iff the required end result is a n array of arrays i.e. without the de-ref, all you do is flatten out the list so numbers will end up containing a list of the elements of numbers.

In the cold light of day, I realise that some of the above response is, at the very least, misleading - instead of '...need to dereference...', I should have said '...create a reference to...'.

A user level that continues to overstate my experience :-))