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/