use Data::Dumper; use EDI::OrderStatus; use strict; sub collander_LoH { my $LoH = shift; my @ret; for (@$LoH) { my $key = keys %{$_}; my $val = $_->{$key}{'length'}; push @ret, { $key => $val }; } \@ret; } our $R = [ { client_number => { element => "Collectors Client Number (Co#) ", length => 2 , decimal => "n/a ", format => 3 , justify => "L ", fill => "Blanks " } } , { delete_code => { element => "Delete Code ", length => 1 , decimal => "n/a ", format => 4 , justify => "L ", fill => "Blanks " } } ]; for (1..3) { warn Data::Dumper->Dump([$R],['R']); collander_LoH $R; }