#!/usr/bin/env perl use strict; use warnings; my @posts = qw{a b c d}; my %fence = ( $posts[0], (map { $_ => $_ } @posts[1..$#posts-1]), $posts[-1] ); print "$_ to $fence{$_}\n" for @posts[0..$#posts-1]; my @extra = qw{w x y z}; my %info; $info{$posts[$_]}{extra} = $extra[$_] for 0..$#posts; print "$_~$info{$_}{extra}\n" for @posts; #### a to b b to c c to d a~w b~x c~y d~z