sub schememap(&@) { my $funcptr = shift; for my $i (0..(scalar(@{$_[0]}) - 1)) { &$funcptr (map { $_->[$i] } @_); } }