#! /tools/perl/5.8.8/linux/bin/perl
use strict;
use warnings;
# Set up a hash to receive the information
my %identifier = ();
# Read the violations file into the hash
open my $filter, '<', $waiver or die;
while (my $vline = <$filter>) {
my ($pins2, $threshold2, $newthreshold2, $note1, $note2, $note3, $
+note4, $note5) = split /\s+/, $vline;
#$identifier{$pins2}{threshold2} = $threshold2;
$identifier{$pins2}{newthreshold2} = $newthreshold2;
}
#Read input file line by line
open my $input, '<', $report or die;
open my $output, '>', $result or die;
while (my $wline = <$input>){
my ($scenario, $pins1, $threshold1, $newthreshold1, $diff, $status
+) = split /\s+/, $wline;
print $output "$scenario $pins1 $threshold1 $newthreshold
+1 $diff $status\n";
foreach my $okey (keys %identifier) {
foreach my $skey (keys %{$identifier{$okey}}) {
if (exists $identifier{$okey}) {
#my $diff2 = $skey - $threshold1;
print $output "$scenario $pins1 $threshold1 $skey
+$diff (WAIVED)\n";
}
}
}
}
close $filter;
close $input;
close $output;
guys, i still have some problems with this code, anyone has any ideas? Basically, my waiver file won't be larger tan input file, and i want the output format same as input file, just watever mention inside the waiver file, the fourth column value chg to waiver file value, and the status chg from "violated" to "waived" |