#! perl -slw use strict; sub multimap (&\@;\@\@\@\@\@\@\@\@\@\@\@\@\@\@\@\@\@\@\@) { my $code = shift; map { my $i = $_; $code->( map{ $_->[ $i ] } @_ ) } 0 .. $#{ $_[ 0 ] }; } my @l = 'a' .. 'z'; my @u = 'A' .. 'Z'; my @n = 1 .. 26; print for multimap { join ', ', @_ } @u, @n, @l; __END__ P:\test>464573 A, 1, a B, 2, b C, 3, c D, 4, d E, 5, e F, 6, f G, 7, g H, 8, h I, 9, i J, 10, j K, 11, k L, 12, l M, 13, m N, 14, n O, 15, o P, 16, p Q, 17, q R, 18, r S, 19, s T, 20, t U, 21, u V, 22, v W, 23, w X, 24, x Y, 25, y Z, 26, z