perl_learner wrote:
On May 5, 3:26 am, [EMAIL PROTECTED] (Gunnar Hjalmarsson) wrote:

     my @kits = qw( aaa.t.z aaa_d.t.z bbb.t.z bbb_d.t.z
                   ccc.t.z ccc_d.t.z ddd.t.z eee.t.z );

     my %hash = map {
         ( my $tmp = $_) =~ s/_d(\.t\.z)$/$1/; $tmp => 1
     } grep /_d\.t\.z$/, @kits;

     foreach my $kit ( grep !/_d\.t\.z$/, @kits ) {
         print "$kit\n" unless $hash{$kit};
     }

Thanks for your reply. It works out if I use qw option. However I have
bigger list. I am sending my program, it provides me both *_d.t.Z as
well as *Z list. Not doing the comparison.

You should never ask for help on a list with fixing buggy code if you haven't first asked Perl for help.

    use strict;
    use warnings;

$KIT_LOCATION="/lnx/dep/packages";
$KIT_LIST=`ls $KIT_LOCATION/*.t.Z`;
#print $KIT_LIST;
$KIT_LIST=~ s/$KIT_LOCATION\///g;
#print $KIT_LIST;
my @kits = $KIT_LIST;

How many elements do you think there are in @kits?

    my @kits = split ' ', $KIT_LIST;

chomp ($kits);
---------^

#print "@kits";###prints out both .Z and _d.t.Z

     my %hash = map {
        ( my $tmp = $_) =~ s/_d(\.t\.Z)$/$1/; $tmp => 1
     } grep /_d\.t\.Z$/, @kits;


        #print "@kits\n"; #prints out both .Z and _d.t.Z

     foreach my $kit ( grep !/_d\.t\.Z$/, @kits ) {
         #print "$kit\n" unless $hash{$kit}; #prints out both .Z and
_d.t.Z
     }


--
Gunnar Hjalmarsson
Email: http://www.gunnar.cc/cgi-bin/contact.pl

--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/


Reply via email to