Hi,
 
This is the script that I wrote using the Gupta approached. However, I
received error when I run it. The goal is to get three output file. One
is contains all the pin matched from array 1 to array 2, the second one
is the elements from array 1 that don't match any elements from array 2
and third file is elements from array 2 that don't match any elements
from array 1. Can some one help me to debug it. Thanks in advance!
 
 
#!/usr/bin/perl -w
use strict;
my $infile = "port_dir_net_list.txt";
my $infile1 =$ARGV[0];
open IN, "$infile" or die $!;
open INJ, "$infile1" or die $!;
open (OUT, "> data.out") || die $!;
open (OUTE,"> error-layout.out")|| die $!;
open (OUTF,"> error-netlist.out")|| die $!;
my @content=<IN>;
my @modify=<INJ>;
close(IN);
close(INJ);
foreach my $mod (@modify){
if($mod=~s/pin/pin/g){
if($mod=~s/VCC/VCC/g){}
elsif($mod=~s/VSS/VSS/g){}
else{  
my @ml=split(/\s+/, $mod);
$ml[1]=~s/\"//g;
push  @sre,$ml[1];
}
}
else{}
}
print OUT 'Layout             Netlist';
print OUT "\n";
print OUTE 'Layout Error Pin';
print OUTE "\n";
print OUTF 'Netlist not matched pin';
print OUTF "\n";
@[EMAIL PROTECTED];
@[EMAIL PROTECTED];
foreach my $item (@content) {
my $check=$item;
$check=~s/\[//g;
$check=~s/\]//g;
chomp($check);
            foreach my $test (@sre){
                        chomp($test);
                        if($check eq $test){
                        print OUT "$test  $check \n";
                        }
                        else{}
                        }
}
foreach my $element (@content){
print OUTF "$element if(!grep{$element} @sre)";
}
foreach my $mu (@sre){
print OUTE "$mu if(!grep{$mu} @content)";
}
close(OUT);
close(OUTE);
close(OUTF);
 
Best regards,
ABC
-----Original Message-----
From: Gupta, Sharad [mailto:[EMAIL PROTECTED] 
Sent: Saturday, June 14, 2003 12:37 PM
To: Boon Chong Ang; [EMAIL PROTECTED]
Subject: RE: compare, checking and listing
 
 
One way: 
To find out elements which are in test2 and not in test1: 
 
#!-*-perl-*-<ur perl path> 
use strict; 
my @test1 = qw(1 2 3 4); 
my @test2 = qw(1 2 5 6 7 8); 
foreach my $element(@test2) { 
        print $element if([EMAIL PROTECTED]); 
} 
-Sharad 
 
-----Original Message----- 
From: Boon Chong Ang [mailto:[EMAIL PROTECTED] 
Sent: Friday, June 13, 2003 9:19 PM 
To: [EMAIL PROTECTED] 
Subject: compare, checking and listing 
 
Hi, 
I have two array, @test1, @test2. Just say, I want compare @test2 with 
@test1 in such manner. @test2 could contains more, less or equal 
elements compare to @test1 which I don't know. 
I want to write a perl script to compare @test2 to @test1 and list out 
those element within @test2 that is not represent within @ test1 and 
those elements within @test1 that has not found the match from the 
@test2 
  
How do I accomplish such task efficiently? 
  
Thank you & best regards, 
ABC 
  

Reply via email to