On May 6, 10:08=A0am, nore...@[EMAIL PROTECTED]
(Gunnar Hjalmarsson) wrote:
> perl_learner wrote:
> > On May 5, 3:26 am, nore...@[EMAIL PROTECTED]
(Gunnar Hjalmarsson) wrote:
>
> >> =A0 =A0 =A0my @[EMAIL PROTECTED]
=3D qw( aaa.t.z aaa_d.t.z bbb.t.z bbb_d.t.z
> >> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0ccc.t.z ccc_d.t.z ddd.t.z
eee.t.=
z );
>
> >> =A0 =A0 =A0my %hash =3D map {
> >> =A0 =A0 =A0 =A0 =A0( my $tmp =3D $_) =3D~ s/_d(\.t\.z)$/$1/; $tmp
=3D> =
1
> >> =A0 =A0 =A0} grep /_d\.t\.z$/, @[EMAIL PROTECTED]
>
> >> =A0 =A0 =A0foreach my $kit ( grep !/_d\.t\.z$/, @[EMAIL PROTECTED]
) {
> >> =A0 =A0 =A0 =A0 =A0print "$kit\n" unless $hash{$kit};
> >> =A0 =A0 =A0}
>
> > 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.
>
> =A0 =A0 =A0use strict;
> =A0 =A0 =A0use warnings;
>
> > $KIT_LOCATION=3D"/lnx/dep/packages";
> > $KIT_LIST=3D`ls $KIT_LOCATION/*.t.Z`;
> > #print $KIT_LIST;
> > $KIT_LIST=3D~ s/$KIT_LOCATION\///g;
> > #print $KIT_LIST;
> > my @[EMAIL PROTECTED]
=3D $KIT_LIST;
>
> How many elements do you think there are in @[EMAIL PROTECTED]
>
> =A0 =A0 =A0my @[EMAIL PROTECTED]
=3D split ' ', $KIT_LIST;
>
> > chomp ($kits);
>
> ---------^
>
> > #print "@[EMAIL PROTECTED]
";###prints out both .Z and _d.t.Z
>
> > =A0 =A0 =A0my %hash =3D map {
> > =A0 =A0 =A0 =A0 ( my $tmp =3D $_) =3D~ s/_d(\.t\.Z)$/$1/; $tmp =3D> 1
> > =A0 =A0 =A0} grep /_d\.t\.Z$/, @[EMAIL PROTECTED]
>
> > =A0 =A0 =A0 =A0 #print "@[EMAIL PROTECTED]
"; #prints out both .Z and _d.t.Z
>
> > =A0 =A0 =A0foreach my $kit ( grep !/_d\.t\.Z$/, @[EMAIL PROTECTED]
) {
> > =A0 =A0 =A0 =A0 =A0#print "$kit\n" unless $hash{$kit}; #prints out
both =
..Z and
> > _d.t.Z
> > =A0 =A0 =A0}
>
> --
> Gunnar Hjalmarsson
> Email:http://www.gunnar.cc/cgi-bin/contact.pl-
Hide quoted text -
>
> - Show quoted text -
Gunner,
Thanks a lot for telling me to use
> use strict;
> use warnings;
These helped me a lot. I had to declare both variables $KIT_LOCATION,
$KIT_LIST correctly by putting "my" before them.
Also with little change, "my @[EMAIL PROTECTED]
=3D split ' ', $KIT_LIST; ## added
an extra space to split"
I am getting the desired output.
I have
> How many elements do you think there are in @[EMAIL PROTECTED]
have ~100 elements @[EMAIL PROTECTED]
Why did you ask this question? Is it going
to be an issue if the numebr of elements get bigger? Do you have any
more suggestion.
Again, thanks a lot :)
Regards,
Shahriar


|