#!/usr/bin/perl use strict; use warnings 'all'; my @arr1 = map {[split //]} ; my @arr2 = map {my $n = $_; join "" => map {$_ -> [$n]} @arr1} 0 .. @{$arr1 [0]} - 2; print "$_\n" for @arr2; __DATA__ ABC DBC ECC FFF