sub multi_push { my $adj = @_/2; while (@_) { my $arg = splice(@_, $adj--, 1); push @{ +shift }, $arg; } } multi_push( (\@names, \@ages, \@locs) => split /::/, $record );