413: quantity=2.0000 ,description=PRESS GAUGE ,tags=PI-412 PI-400 ,partnum=2204133000 ,
414: quantity=2.0000 ,description=THERMOWELL ,tags= ,partnum=2202261000 ,
415: quantity=5.0000 ,description=THERMOMETER ,tags= TI-100 TI-101 TI-200 ,partnum=2201176000 ,
####
413: partnum=2204133000,description=PRESS GAUGE,quantity=1.0000,tags=PI-412 ,
414: partnum=2202261000,description=THERMOWELL,quantity=2.0000,tags= ,
415: partnum=2201176000,description=THERMOMETER,quantity=2.0000,tags= ,
576: partnum=2204133000,description=PRESS GAUGE,quantity=1.0000,tags=PI-400 ,
582: partnum=2201176000,description=THERMOMETER,quantity=3.0000,tags=TI-100 TI-101 TI-200
####
#!/usr/bin/perl
#
use strict;
use warnings;
my @tmp2 = (
"413: partnum=2204133000,description=PRESS GAUGE,quantity=1.0000,tags=PI-412",
"414: partnum=2202261000,description=THERMOWELL,quantity=2.0000,tags=",
"415: partnum=2201176000,description=THERMOMETER,quantity=2.0000,tags=",
"576: partnum=2204133000,description=PRESS GAUGE,quantity=1.0000,tags=PI-400",
"582: partnum=2201176000,description=THERMOMETER,quantity=3.0000,tags=TI-100 TI-101 TI-200"
);
#
# Move the data into a hash %HoH
#
my $who = ();
my $field = ();
my %HoH = ();
my $rec = ();
my $key = ();
my $value = ();
foreach (@tmp2) {
s/^(.*?):\s*//;
$who = $1;
$rec = {};
$HoH{$who} = $rec;
for $field ( split(/,/) ) {
( $key, $value ) = split /=/, $field;
$rec->{$key} = $value;
}
}
print "\nHash complete\n";
##############################################
##
## Remove duplicate part numbers and combine the tags, if necessary.
##
##
print "######################################";
print "Duplicate Removal Testing\n";
my %tmpHoH = %HoH;
my $keyouter;
my $valueouter;
my $keydup;
my $valuedup;
my @keydelete = ();
while ( ( $keyouter, $valueouter ) = each %HoH ) {
while ( ( $keydup, $valuedup ) = each %tmpHoH ) {
if ( $keyouter eq $keydup ) {
next;
}
if ( $HoH{$keyouter}{partnum} eq $tmpHoH{$keydup}{partnum} ) {
print "**********\n";
print
"key: $keyouter, value: $HoH{$keyouter}{partnum}, tag= $HoH{$keyouter}{tags}\n";
print
"key: $keydup, value: $tmpHoH{$keydup}{partnum}, tag= $tmpHoH{$keydup}{tags}\n";
$HoH{$keyouter}{tags} =
$HoH{$keyouter}{tags} . " " . $tmpHoH{$keydup}{tags};
print "$tmpHoH{$keyouter}{tags}\n";
print "**********\n";
push( @keydelete, "$keyouter=>$keydup" );
}
}
}
print "######################################\n";
##############################################
#############################################
#
## Testing to see if the hash is working.
## Uncomment Section below to test.
my $iter = ();
my $iter2 = ();
for $iter ( keys %HoH ) {
print "$iter: ";
for $iter2 ( keys %{ $HoH{$iter} } ) {
print "$iter2=$HoH{$iter}{$iter2} ,";
}
print "\n";
}