RosettaCodeData/Task/Align-columns/Perl-6/align-columns-3.pl6
2016-12-05 22:15:40 +01:00

7 lines
332 B
Raku

sub MAIN ($alignment where 'left'|'right', $file) {
my @lines := $file.IO.lines.map(*.split: '$').List;
my @widths = roundrobin(|@lines).map(*».chars.max);
my $align = {left=>'-', right=>''}{$alignment};
my $format = @widths.map({ "%{++$}\${$align}{$_}s" }).join(" ") ~ "\n";
printf $format, |$_ for @lines;
}