aboutsummaryrefslogtreecommitdiff
path: root/challenge-033/ruben-westerberg/perl5/ch-2.pl
blob: dfdef93a3099ad1b3deb0787320a5a3fb2dad86e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#!/usr/bin/env perl
use strict;
use warnings;

my $limit=$ARGV[0]//11;
my $maxWidth=1+length $limit**2;
printRow("",[1..$limit],$maxWidth);
print "-" x (($limit+2)*$maxWidth),"\n";
for (1..$limit) {
	my $i=$_;
	my @row;
	my $header=$_;
	for (1..$limit) {
		if ($_ >= $i) {
			push @row, $i * $_;
		}
		else {
			push @row, "";
		}
	}
	printRow( $header,\@row, $maxWidth);
}

sub printRow {
	my ($header,$data,$minWidth)=@_;
	my $output="";
        for (@$data) {
                $output.=sprintf "%".$minWidth."s",$_;
        }
	printf "%".$minWidth."s|%s\n",$header,$output;
}