Hello Jeff,

Your solution is perfectly working. Thanks a lot!

BTW I've solved my as well. I had to put
   }
$y++;
}
$y = $x; <- Here
$x++;
}

I agree my code looks ugly -)

Thanks,
Vladimir

----- Original Message ----- From: "Jeff Pang" <[EMAIL PROTECTED]>
To: "Vladimir Lemberg" <[EMAIL PROTECTED]>; <beginners@perl.org>
Sent: Thursday, March 22, 2007 7:16 PM
Subject: Re: list of lists


Hello,

I don't think the $x and $y are needed here since you're using Perl which is flexible enough for creating dynamic array for you.
Here is my improvment version of your codes.

my @table;

foreach my $category (sort keys %categories){
  my @tmp = ($category);

  foreach my $zone (sort keys %na_zones){
     open (F, "$cwd\\db\\$na_zones{$zone}\\cat.cfg") or die;
     my @list = grep {/CODE:$poi_categories{$category}/} <F>;
     close (F);

     my $poi_num = @list ? &POI_Count(@list) : 0;
     push @tmp,$poi_num;
 }
 push @table,[EMAIL PROTECTED];
}

(no test but I think it should most likely work.)


use strict;
use warnings;
use Win32;
use Cwd;

my @table;
my $x = 0;
my $y = 0;

foreach my $category (sort keys %categories){
 $table[$x][$y] = [ $category ];
 $y ++;

 foreach my $zone (sort keys %na_zones){
   my @list;

   open (F, "$cwd\\db\\$na_zones{$zone}\\cat.cfg") or die;
   @list = grep {/CODE:$poi_categories{$category}/} <F>;
   close (F);

   #skip empty category
   if ([EMAIL PROTECTED]) {
      $table[$x][$y] = [ 0 ];
   }
   else {
      my $poi_num = &POI_Count (@list);
      $table[$x][$y] = [ $poi_num ];
   }
   $y++;
 }
 $x++;
}

I have nothing when I print "$table[1][1]\n"; :-(((



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


Reply via email to