in reply to push an array into Hash of Array

This is actually creating an array with one element, which is an array reference:

my @arr=['rose','orange','green'];

What you actually want is to use parentheses, as I do below.

use Data::Dumper; my @arr = ( 'rose', 'orange', 'green' ); my %hash; $hash{'first'} = \@arr; print Dumper \%hash; my @newarr = ( 'red', 'blue' ); push @{ $hash{'first' } }, @newarr; print Dumper \%hash; __END__ $VAR1 = { 'first' => [ 'rose', 'orange', 'green' ] }; $VAR1 = { 'first' => [ 'rose', 'orange', 'green', 'red', 'blue' ] };

You might want to look at perldata, perlreftut, perlref, and References quick reference.