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


in reply to shifting arguments

from the perlfunc man page:
"shift: Shifts the first value of the array off and returns it"

shift only retrieves the first value from the array... so the other two would naturally be undef.

you could do:

my($reg, $ass, $check) = (shift, shift, shift);
or try something clever with 'splice'