Viewing file: dbm_filter_util.pl (1.64 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
use strict; use warnings;
sub StoreData { my $hashref = shift ; my $store = shift ;
my (undef, $file, $line) = caller; ok 1, "StoreData called from $file, line $line";
ok ref $store eq 'HASH', "Store Data is a hash reference"; ok tied %$hashref, "Storing to tied hash";
while (my ($k, $v) = each %$store) { no warnings 'uninitialized'; #diag "Stored [$k][$v]"; $$hashref{$k} = $v ; }
}
sub VerifyData { my $hashref = shift ; my $expected = shift ; my %expected = %$expected;
my (undef, $file, $line) = caller; ok 1, "VerifyData called from $file, line $line";
ok ref $expected eq 'HASH', "Expected data is a hash reference"; ok tied %$hashref, "Verifying a tied hash";
my %bad = (); while (my ($k, $v) = each %$hashref) { no warnings 'uninitialized'; if ($expected{$k} eq $v) { #diag "Match [$k][$v]"; delete $expected{$k} ; } else { #diag "No Match [$k][$v]"; $bad{$k} = $v; } }
if( ! ok(keys(%bad) + keys(%expected) == 0, "Expected == Actual") ) { my $bad = "Expected does not match actual\n"; if (keys %expected ) { $bad .=" No Match from Expected:\n" ; while (my ($k, $v) = each %expected) { $bad .= "\t'$k' =>\t'$v'\n"; } } if (keys %bad ) { $bad .= "\n No Match from Actual:\n" ; while (my ($k, $v) = each %bad) { no warnings 'uninitialized'; $bad .= "\t'$k' =>\t'$v'\n"; } } diag "${bad}\n" ; } }
1;
|