sub zip { my($l1, $l2) = @_; die "zip(): expects two ARRAY refs\n" if ref($l1) ne 'ARRAY' or ref($l2) ne 'ARRAY'; my %ret; @ret{ @$l1 } = @$l2; return map { $_ => $ret{$_} } @$l1; }