#!/usr/bin/env perl -l use strict; use warnings; my @init = qw{1 20 2 0 2 1 3 0 3 0 3 1 7 0 8 2 9 1 9 2 10 3}; print "@init"; my %merge; $merge{$init[$_]} += $init[$_+1] for grep { not $_ % 2 } 0 .. $#init; my @out = map { $_, $merge{$_} } sort { $a <=> $b } keys %merge; print "@out"; #### 1 20 2 0 2 1 3 0 3 0 3 1 7 0 8 2 9 1 9 2 10 3 1 20 2 1 3 1 7 0 8 2 9 3 10 3