Hallo!
use Term::TablePrint qw(print_table);
my $table = [
[ 1, 'Ruth' ],
[ 2, 'John' ],
[ 3, 'Mark' ],
[ 4, 'Nena' ]
];
print_table( $table, { add_header => 1 } );
Die Option "add_header" ist hässlich (die Spalten heißen dann '1col', '2col', ... ) und ich möchte sie entfernen.
if ( $self->{add_header} ) {
unshift @$table_ref, [ map { $_ . 'col' } 1 .. @{$table_ref->[0]} ];
}
Eigentlich wollte ich sie mit der Option "col_names" ersetzen:
if ( @{$self->{col_names}} ) {
my $missing = @{$table_ref->[0]} - @{$self->{col_names}};
if ( $missing > 0 ) {
my $last = pop @{$self->{col_names}};
unshift @$table_ref, [ @{$self->{col_names}}, map { $_ . $last } 1 .. $missing + 1 ];
push @{$self->{col_names}}, $last;
}
else {
unshift @$table_ref, [ @{$self->{col_names}}[ 0 .. $#{$table_ref->[0]} ] ];
}
}
Aber dann habe ich mir überlegt, ob das sinnvoll ist und ich diese Option nicht besser ganz weg lasse und mir eine Liste mit den Vor- und Nachteilen zusammengestellt.
Auf der Nachteile-Seite:
- man muss sich eine Option merken für etwas, das genauso gut ohne diese Option geht: push @table, [ col_names, ... ];
- die übergebenen "Table"-Daten werden ungefragt verändert (eine Reihe hinzugefügt)
- mehr Code
- mehr Dokumention zu lesen
Für die Vorteile-Seite habe ich nichts mehr gefunden.
Kann mir jemand ein paar Gedanken dazu schenken?