use strict;
use Data::Dumper;
my $i = 0;
my (@tab,@row);
for (0..10) {
unless ($i % 4 or $i == 0) {
push @tab,[@row];
@row = ();
}
push @row,$_;
$i++;
}
push @tab,[@row];
print Dumper \@tab;
####
use strict;
use Data::Dumper;
my ($i,$j) = (0,0);
my $tab;
for (0..10) {
push @{$tab->[$j]},$_;
$j++ unless ++$i % 4;
}
print Dumper $tab;
####
use strict;
use HTML::Template;
use File::Basename;
my $row_limit = 5;
my $image_dir = 'images';
my %ok_ext = map { $_ => 1 } qw(jpg gif png);
my $data = do {local $/; };
my $template = HTML::Template->new(
scalarref => \$data,
);
my @dir_row;
while(my $dir = <$image_dir/*>) {
next unless -d $dir;
my ($i,$j) = (0,0);
my $dir_row = {dir => $dir};
while (my $full = <$dir/*>) {
my ($file,$ext) = (fileparse($full,keys %ok_ext))[0,2];
next unless $ok_ext{$ext};
push @{$dir_row->{file_row}->[$j]->{images}},
{ filename => $full, alt => $file };
$j++ unless ++$i % $row_limit;
}
push @dir_row, $dir_row;
}
$template->param(
title => 'Images',
dir_row => \@dir_row,
);
print $template->output;
__DATA__