Quiq::Table - Tabelle
Quiq::Hash
Mit Kolumnennamen:
use Quiq::Table; # Daten @rows = ( [1, 'A', 76.253], [12, 'AB', 1.7 ], [123,'ABC',9999 ], ); # Objekt instantiieren $tab = Quiq::Table->new(['a','b','c'],\@rows); # Werte der Kolumne b @values = $tab->values('b'); say "@values"; ==> A AB ABC # Ausgabe als Text-Tabelle print $tab->asText; ==> | 1 | A | 76.253 | | 12 | AB | 1.700 | | 123 | ABC | 9999.000 |
Ohne Kolumnennamen:
use Quiq::Table; # Daten @rows = ( [1, 'A', 76.253], [12, 'AB', 1.7 ], [123,'ABC',9999 ], ); # Objekt instantiieren $tab = Quiq::Table->new(3,\@rows); # Werte der Kolumne 1 (0-basierte Zählung) @values = $tab->values(1); say "@values"; ==> A AB ABC # Ausgabe als Text-Tabelle print $tab->asText; ==> | 1 | A | 76.253 | | 12 | AB | 1.700 | | 123 | ABC | 9999.000 |
Ein Objekt der Klasse repräsentiert eine Tabelle, also eine Liste von Arrays identischer Größe. Die Kolumnen können über ihre Position oder ihren Namen (sofern definiert) angesprochen werden. Die Klasse kann die Daten in verschiedenen Formaten tabellarisch ausgegeben.
Siehe quiq-ls
$tab = $class->new($width); $tab = $class->new($width,\@rows); $tab = $class->new(\@columns); $tab = $class->new(\@columns,\@rows);
Anzahl der Kolumnen (Integer).
Liste von Kolumnennamen (Array of Strings).
Liste von Zeilen (Array of Arrays).
Referenz auf Tabellen-Objekt
Instantiiere ein Tabellen-Objekt und liefere eine Referenz auf dieses Objekt zurück.
@columns | $columnA = $tab->columns;
Liste der Kolumnennamen (Strings). Im Skalarkontext eine Referenz auf die Liste.
Liefere die Liste der Kolumnennamen der Tabelle.
$count = $tab->count;
Integer
Liefere die Anzahl der Zeilen der Tabelle.
$pos = $tab->pos($column); $pos = $tab->pos($pos);
Kolumnenname (String).
Kolumnenposition (Integer).
Liefere die Position der Kolumne $column in den Zeilen-Arrays. Die Position ist 0-basiert. Ist das Argument eine Zahl (Position), liefere diese unverändert zurück.
$prp = $tab->properties($pos); $prp = $tab->properties($column);
Properties-Objekt (Quiq::Properties)
Ermittele die Eigenschaften der Werte der Kolumne $column und liefere ein Objekt, das diese Eigenschaften abfragbar zur Verfügung stellt, zurück. Die Eigenschaften werden gecacht, so dass bei einem wiederholten Aufruf die Eigenschaften nicht erneut ermittelt werden müssen. Wird die Tabelle mit push() erweitert, wird der Cache automatisch gelöscht.
$tab->push(\@arr);
Liste von Zeilendaten (Strings).
Füge eine Zeile mit den Kolumnenwerten @arr zur Tabelle hinzu. Die Anzahl der Elemente in @arr muss mit der Anzahl der Kolumnen übereinstimmen, sonst wird eine Exception geworfen. Durch das Hinzufügen einer Zeile werden die gecachten Kolumneneigenschaften - sofern vorhanden - gelöscht (siehe Methode properties()).
@rows | $rowA = $tab->rows;
Liste der Zeilen (Objekte der Klasse Quiq::TableRow). Im Skalarkontext eine Referenz auf die Liste.
Liefere die Liste der Zeilen der Tabelle.
@values | $valueA = $tab->values($pos,@opt); @values | $valueA = $tab->values($column,@opt);
Liste der verschiedenen Werte.
Liste der Werte (Strings). Im Skalarkontext eine Referenz auf die Liste.
Liefere die Liste der Werte der Kolumne $column. Per Default wird die Liste aller Werte geliefert, auch wenn sie mehrfach vorkommen. Siehe auch Option -distinct.
-distinct
$width = $tab->width;
Liefere die Anzahl der Kolumnen der Tabelle.
$text = $tab->asText(@opt);
Callback-Funktion, die für jede Zelle gerufen wird und eine Termnal-Farbe für die jeweilige Zelle liefert. Die Funktion hat die Struktur:
sub { my ($tab,$row,$pos,$val) = @_; ... return $color; }
Die Terminal-Farbe ist eine Zeichenkette, wie sie Quiq::AnsiColor erwartet. Anwendungsbeispiel siehe quiq-ls.
Text-Tabelle (String)
1.159
Frank Seitz, http://fseitz.de/
Copyright (C) 2019 Frank Seitz
This code is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
To install Quiq, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Quiq
CPAN shell
perl -MCPAN -e shell install Quiq
For more information on module installation, please visit the detailed CPAN module installation guide.