use strict; use warnings; use Data::Dumper; my $arr = [ [ IMG0001 => [ { y => 0, filename => 'new value', x => 0, }, { y => 0, filename => 'cel.jpg', x => 10, }, ], ], [ IMG0002 => [ { y => 0, filename => 'batman.jpg', x => 0 }, { y => 10, filename => 'robin.jpg', x => 10, }, ], ] ]; splice @{$arr->[1]->[1]}, 1, 1; print Dumper $arr;