Pal,

I have to files that I am trying to match:

Generated from rpm -qa > file1
file1
libstdc++-4.1.2-48.el5
info-4.8-14.el5
libICE-1.0.1-2.1
libacl-2.2.39-6.el5
lcms-1.18-0.1.beta1.el5_3.2
dmidecode-2.10-3.el5
.......

Generate from rpm -qa --queryformat '%{NAME}\n' > file2
file2
acl
alacarte
alchemist
alsa-lib
alsa-utils
amtu
apr
apr-util
aspell
aspell-en
..............

I am trying to list files that exist on file1 that are missing on file2 and 
have the following script:

#! /usr/bin/perl

use strict;
#use warning;

open MSRT, "/Users/williamm/Documents/file1" or die $!;
open Test_server, "/Users/williamm/Documents/file2" or die $1;
#open MSRT, "/Users/williamm/test1_rpm.txt" or die $1;
#open Test_server, "/Users/williamm/test2_rpm.txt" or die $1;

my $tom;
my $msrt;

while   ($tom = <Test_server>) {
  chomp($tom);
#  print "T:$tom\n";
  while ($msrt = <MSRT>) {
    chomp($msrt);
#    print "M:$msrt\n";
     if ($msrt =~ /^\Q$tom\E/){
#    if ($msrt =~ m/^$tom.*$/){
      print "$tom: $msrt\n";
#      print "Found\n";
    }
  }
}


williamcomputer:~ williamm$ perl compareRPM.pl 
acl-2.2.39-6.el5: acl-2.2.39-6.el5

It does loop through the two files fine, but I think the regular expression is 
not working fine.  It only match one RPM, but I have been able to find many 
others that should have matched. For example, this should have been printed out.

krb5-libs-1.6.1-36.el5_4.1:  krb5-libs

Any idea of what tweak to the regular expression I need apply to make it work 
properly?  Also, advice of a better way of solving this problem would also be 
appreciated. 

Thanks in advance

William
--
To unsubscribe, e-mail: beginners-unsubscr...@perl.org
For additional commands, e-mail: beginners-h...@perl.org
http://learn.perl.org/


Reply via email to