I am comparing lists of invalid database objects, and trying to determine when values in the second list don't match the values in the first list. (I have to warn the user, via a Jenkins build, when the list has grown and/or new values have appeared)
The exists block fails at runtime, but I cannot figure out a clean, easy way to traverse the 'postbuilds' array to check if the value exists. Any help/pointers would be GREATLY appreciated!
#!/usr/bin/perl use strict; use warnings; use Data::Dumper; my @array1 = ( "proc1", "proc2", "proc3", "proc4" ); my @array2 = ( "proc1", "proc2", "proc3", "proc4", "proc5" ); my %HoA = ( prebuilds => [@array1], postbuilds => [@array2], ); print Dumper \%HoA; while ( my ( $key, $reference ) = each %HoA ) { foreach my $temp ( @{$reference} ) { print "key: $key, temp: $temp\n"; # look to see if a value in the postbuild list # exists in the prebuild list if ( exists( $HoA{'postbuild'}->$temp ) ) { print "yes\n"; } else { print "no\n"; } } }
Thank you!
In reply to Comparing values within a Hash of Arrays by TJRandall
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |