Con este programa ya sale bien.
Solo hubo que agregar la precisión al printf.
Tienes más información en
perldoc -f sprintf
Using perl Syntax Highlighting
#!/usr/bin/perl
#
# Formateo de campos CSV.
# Joaquín Ferrero, 20120518
#
use strict;
use warnings;
use diagnostics;
binmode STDOUT, ':crlf'; # salida de las líneas en modo MSDOS
while (my $linea = readline) {
chomp $linea;
$linea =~ s/"//g;
next if $linea !~ /^(?:Ins|>>)/;
my @campos = split /,/, $linea;
next if @campos < 7;
# estas líneas no son necesarias porque se indica la "precisión" en el printf,
# que se encargará de recortar los caracteres sobrantes
# for my $campo (@campos[0,1]) {
# $campo = substr $campo, 0, 100;
# }
# for my $campo (@campos[2..6]) {
# $campo = substr $campo, 0, 28;
#
# }
printf "%-100.100s%-100.100s%-28.28s%-28.28s%-28.28s%-28.28s%-28.28s*\n", @campos;
}
Coloreado en 0.001 segundos, usando
GeSHi 1.0.8.4