Front page | perl.beginners |
Postings from May 2008
Re: comparing kit names
Thread Previous
|
Thread Next
From:
Gunnar Hjalmarsson
Date:
May 6, 2008 10:08
Subject:
Re: comparing kit names
perl_learner wrote:
> On May 5, 3:26 am, nore...@gunnar.cc (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
Thread Previous
|
Thread Next