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 33
| #!/usr/bin/perl
use strict;
use warnings;
my $F;
my $csv = "exemple.csl";
if (!-r $csv) {
open $F, ">", $csv or die "Can't open $csv for writing: $!\n";
foreach (0.. 40) {
print { $F } join ";", map { join "", map { ("a" .. "z")[int(rand(26))] } 0 .. int(rand(10)) } 0 .. 5;
print { $F } "\n";
}
undef $F;
}
use List::Util qw(max);
open $F, "<", $csv;
my @taille_colonne;
while (my $ligne = <$F>) {
my $colonne = 0;
chomp $ligne;
$taille_colonne[$colonne++] = max($taille_colonne[$colonne] // 0, length) foreach split /;/, $ligne;
}
undef $F;
open $F, "<", $csv;
while (my $ligne = <$F>) {
my $colonne = 0;
chomp $ligne;
print join ";", map { sprintf "%*.*s", $taille_colonne[$colonne]+1, $taille_colonne[$colonne]+1, $_ } split /;/, $ligne;
print "\n";
} |
Partager