>>469 こんなかんじ

#!/usr/bin/perl -w

use strict;
our($a, $b);

sub mapup (& \@ \@)
    #(code_ref $code, array_ref $_a, array_ref $_b)
{
    my($code, $_a, $_b) = @_;
    my @retval;
    my $max_index = (@$_a < @$_b) ? @$_a : @$_b;
    
    for (my $i = 0; $i < $max_index; $i++) {
        local($a, $b) = ($_a->[$i], $_b->[$i]);
        push @retval, $code->();
    }
    return @retval;
}

my @a = (1, 2, 3);
my @b = (0, 8, 7);
my @c = qw[ G C A T ];
my @d = qw[ C G T A ];

my @sum = mapup { $a + $b } @a, @b; # (1, 10, 10)
my @pro = mapup { $a * $b } @a, @b; # (0, 16, 21)
my @bigger = mapup { $a > $b ? $a : $b } @a, @b; # (1, 8, 7)
my @concat = mapup { $a . "-" . $b } @c, @d; # (G-C,C-G,A-T,T-A)