944,198 Members | Top Members by Rank

Ad:
  • Perl Discussion Thread
  • Unsolved
  • Views: 10295
  • Perl RSS
Oct 10th, 2006
0

comparision of two files

Expand Post »
Hi Friends,

I am writing a script to compare two files put in two arrays and I expect the those elements which are found in array2 that are not in array1. here there are 2 files Perf.txt which contains some names, and Neu.txt contains some names which are common as well as some different names. Now I am interested only in different names that are not present in Perf.txt

My script:

open (PERF, "Perf.txt");
open (DSA, "Neu.txt");

@Perf = <PERF>;
@Neu = <DSA>;
my %seen; # lookup table

# build lookup table
@seen{@Neu} = ();

foreach $item (@Perf)
{
# print ($item) unless exists $seen{$item};
push (@miss, $item) unless exists $seen{$item};
}

foreach(@miss)
{
print "\nElement found ---> $_";
}

When I execute this I am getting all the names which are present in Neu.txt.
Please suggest me what I am wrong.

Thanks and Regards,
Raghavendra S
Similar Threads
Reputation Points: 10
Solved Threads: 0
Newbie Poster
RAGHAVENDRAS is offline Offline
3 posts
since Sep 2006
Oct 10th, 2006
0

Re: comparision of two files

open (PERF, "Perf.txt") or die "can't open perf.txt: $!";
open (DSA, "Neu.txt") or die "Can't open neu.txt: $!";

chomp(@Perf = <PERF>);
chomp(@Neu = <DSA>);
my %seen; # lookup table

# build lookup table
@seen{@Neu} = ();

foreach $item (@Perf)
{
# print ($item) unless exists $seen{$item};
push (@miss, $item) unless exists $seen{$item};
}

foreach(@miss)
{
print "\nElement found ---> $_";
}
Reputation Points: 246
Solved Threads: 67
Practically a Posting Shark
KevinADC is offline Offline
898 posts
since Mar 2006
Apr 2nd, 2007
0

Re: comparision of two files

#!/usr/bin/perl:mrgreen:

use Algorithm:iff qw(diff);

bag("Usage: $0 oldfile newfile") unless @ARGV == 2;

my ($file1, $file2) = @ARGV;

# -f $file1 or bag("$file1: not a regular file");
# -f $file2 or bag("$file2: not a regular file");

-T $file1 or bag("$file1: binary");
-T $file2 or bag("$file2: binary");

open (F1, $file1) or bag("Couldn't open $file1: $!");
open (F2, $file2) or bag("Couldn't open $file2: $!");
chomp(@f1 = <F1>);
close F1;
chomp(@f2 = <F2>);
close F2;

$diffs = diff(\@f1, \@f2);
exit 0 unless @$diffs;

foreach $chunk (@$diffs) {

foreach $line (@$chunk) {
my ($sign, $lineno, $text) = @$line;
printf "%4d$sign %s\n", $lineno+1, $text;
}
print "--------\n";
}
exit 1;

sub bag {
my $msg = shift;
$msg .= "\n";
warn $msg;
exit 2;
}
Reputation Points: 10
Solved Threads: 0
Newbie Poster
Sandi is offline Offline
1 posts
since Apr 2007

This thread is more than three months old

No one has posted to this discussion for at least three months. Please let old threads die and do not reply to them unless you feel you have something new and valuable to contribute that absolutely must be added to make the discussion complete. Otherwise, please start a new thread in this forum instead.
Message:
Previous Thread in Perl Forum Timeline: Need help for conveting Perl Code to a C Code
Next Thread in Perl Forum Timeline: hi i have prob solve it plz





About Us | Contact Us | Advertise | Acceptable Use Policy
Forum Index | Build Custom RSS Feed


Follow us on Twitter


© 2011 DaniWeb® LLC