While reading your post I assumed @array can be of varying length, so there maybe a need for such a provision to be held. In addition to the informative replies you received, I thought I would just demonstrate this in an example which shows the possibility of array manipulations on @array while it is in $hashref... this is just an example:
use Data::Dumper;
my @array = ('test', 'demo', 'work');
my $hashref = {'key'=>['value', [@array], 'add']};
push @{$hashref->{'key'}->[1]}, 'home';
push @{$hashref->{'key'}->[1]}, 'cars';
printf "I popped \'%s\'.\n\n", pop @{$hashref->{'key'}->[1]};
print Dumper(\%$hashref);
Excellence is an Endeavor of Persistence.
Chance Favors a Prepared Mind.