The Perl model for function call and return values is simple: all func- tions are passed as parameters one single flat list of scalars, and all functions likewise return to their caller one single flat list of scalars. Any arrays or hashes in these call and return lists will col- lapse, losing their identities--but you may always use pass-by-refer- ence instead to avoid this. Both call and return lists may contain as many or as few scalar elements as you’d like. (Often a function with- out an explicit return statement is called a subroutine, but there’s really no difference from Perl’s perspective.)