use List::MoreUtils qw( pairwise ); my @pdu_nums = 3 .. 8; @pdu_nums = reverse @pdu_nums if $order; %map = { $b => "${pdu}[${a}]" } pairwise @pdu_nums, @nodes;