in reply to stumped on a complex data structure

Input:

use strict; use warnings; my %HoA = ( 0 => [ split(/\n/, <<'__EOI__') ], 1;;;;;;; ;;;;;;;; ;;;;;;;; ;;LINE;;SVC;LINE;ACCT;VIEW; __EOI__ 1 => [ split(/\n/, <<'__EOI__') ], 1;; ;;; ;;; ;LINE;; __EOI__ 2 => [ split(/\n/, <<'__EOI__') ], 1;;;;; ;;;;;; ;;;LAST;;; ;UPDT;SRCE;UPDT;UPDT;WORK; __EOI__ ); local *FILE = *STDOUT;

Code:

my @keys = sort keys %HoA; my $num_elements = @{$HoA{$keys[0]}}; for (my $i=0; $i<$num_elements; $i++) { print FILE join('', map { $HoA{$_}[$i] } @keys), $/; }

Output:

1;;;;;;;1;;1;;;;; ;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;LAST;;; ;;LINE;;SVC;LINE;ACCT;VIEW;;LINE;;;UPDT;SRCE;UPDT;UPDT;WORK;

MapCar and MapCarU from Algorithm::Loops could be used as an alternative, but it would be overkill.