When you call or return from a Perl subroutine, your argument list gets flattened into a simple list. For your argument list as presented, this means that the first three elements of your argument list are assigned to
$self,
$copyLocation, and
$tcid and the remaining elements of the argument list are assigned to
%parseData. If you want to pass multiple arrays or hashes, you need to use
Pass by Reference. See
perlreftut for more info on references and
perlsub for more info on Perl subroutines.