in reply to push an array into Hash of Array

Are you sure you want that double referencing of the array? Instead of
my @arr=['rose','orange','green']; $hash{"first"}=[@arr];
it makes more sense to have
my @arr = qw(rose orange green); $hash{"first"}=\@arr;
To add to this array, simply
push(@{$hash{first}}, qw(red blue));
In entirety:
#!/usr/bin/perl use warnings; use strict; use Data::Dumper; my %hash; my @arr = qw(rose orange green); $hash{"first"}=\@arr; push(@{$hash{first}}, qw(red blue)); print Dumper(\%hash); ----- $VAR1 = { 'first' => [ 'rose', 'orange', 'green', 'red', 'blue' ] };
Update: for your updated question
$hash{first} = []; push(@{$hash{first}}, \@arr); ... @newarr = qw(red blue); push(@{$hash{first}}, \@newarr);