http://www.perlmonks.org?node_id=608073


in reply to Re: prototypes: so many \@'s?
in thread prototypes: so many \@'s?

A prototype of (@) is meaningless. It does not force anything because the smallest list is empty: it asks for an argument in list context, not an array.
I don't think there is a prototype for what you ask, you will probably have to do without (ttt(\@a,\@b,\@c)) and use ref to check that each argument is of the correct type. Trouble is that this is a run-time check not a compile-time check as you get with a prototype.