#!/usr/bin/perl use warnings; use strict; use Data::Dumper; my @AoH = ({key1 => 'value1', key2 => 'value2', key3 => [ { var1 => 'val1', var2 => 'val2', }, #NEED TO ADD ANOTHER HASH HERE ], }, ); push @{ $AoH[0]{key3} }, { key => 'value' }; # ^ ^ ^ # | | | # deref 0th | # as an hash | # array key in # the hash $AoH[0]{key3}[2]{another} = 'way'; # if you know the index. print Dumper \@AoH;