use strict; use warnings; my @responsetextall = ( [ { id => 'id00', status => 'status00' }, { id => 'id01', status => 'status01' }, ], [ { id => 'id10', status => 'status10' }, { id => 'id11', status => 'status11' }, ], ); for my $i ( 0 .. $#responsetextall ) { #$responsetextall[$i] =~ s/]\[/,/g; for my $j ( 0 .. $#{ $responsetextall[$i] } ) { my $responseid = $responsetextall[$i][$j]{id}; my $responsests = $responsetextall[$i][$j]{status}; print "$responseid $responsests\n"; } } #### #push @responsetextall, @responsetext; push @responsetextall, [@responsetext];