sub zip { my @A; foreach my $i (0..$#{$_[0]}) { push @A, [ map { $_->[$i] } @_ ]; } wantarray and return @A; return \@A; }