in reply to How to compare hash value

"You will be miserable until you learn the difference between scalar and list context"

Programming Perl 3rd Ed p69

You almost certainly do not want to do this:

$myhash{$key1}=@value1

as $myhash{$key1} will contain the count of the number of elements in @value1

You will probably want to use references for this:

either:

$myhash{$key1}=\@value1;

or:

$myhash{$key1}=[ qw(abd bcd cde def efg) ];

perldoc perlreftut and perldoc perldsc refer.

As to your question, you may wish to review perldoc  perlfaq4, particularly How do I test whether two arrays or hashes are equal?, for some pointers on where to start.