in reply to comparison of two hashes
use strict; use warnings; use Data::Comparator qw(data_comparator); use Data::Dumper; my $file1 = <<EOF; Cell: AND1 A1 A2 Y Cell: INV1 A Z EOF my $file2 = <<EOF; Cell: AND1 A B Y Cell: INV2 A Z EOF my $fh; my $cell; my %lib1; open $fh, '<', \$file1 or die "Can not open file: $!"; while (<$fh>) { chomp; if (/ ^ Cell: \s+ (.*) /x) { $cell = $1; } else { my @ports = split; push @{ $lib1{$cell} }, \@ports; } } my %lib2; open $fh, '<', \$file2 or die "Can not open file: $!"; while (<$fh>) { chomp; if (/ ^ Cell: \s+ (.*) /x) { $cell = $1; } else { my @ports = split; push @{ $lib2{$cell} }, \@ports; } } my $diff = data_comparator(\%lib1, \%lib2); print Dumper($diff) unless ($diff->is_empty()); __END__ $VAR1 = bless( { 'AND1' => bless( [ bless( [ bless( do{\(my $o = 'A')} +, 'Data::Differences' ), bless( do{\(my $o = 'B')} +, 'Data::Differences' ) ], +'Data::Differences' ) ], 'Data::Differences' ), 'INV2' => bless( do{\(my $o = [ [ 'A', 'Z' ] ])}, 'Data::Differences' ) }, 'Data::Differences' );
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: comparison of two hashes
by blackgoat (Acolyte) on Feb 03, 2010 at 03:46 UTC | |
by toolic (Bishop) on Feb 03, 2010 at 14:31 UTC |