Quiq::Table - Tabelle
Quiq::Hash
use Quiq::Table; # Objekt $tab = Quiq::Table->new(['a','b','c','d']); # Kolumnen $width = $tab->width; # 4 @columns = $tab->columns; # ('a','b','c','d') $columnA = $tab->columns; # ['a','b','c','d'] $i = $tab->index('c'); # 2 $i = $tab->index('z'); # Exception # Zeilen @rows = $tab->rows; # () $rowA = $tab->rows; # [] $count = $tab->count; # 0 $tab->push([1,2,3,4]); $tab->push([5,6,7,8]); $tab->push([1,9,10,11]); $count = $tab->count; # 3 # Über alle Zeilen und Kolumnen iterieren for my $row ($tab->rows) { for my $value ($row->values) { # ... } } # Werte @values = $tab->values('a'); # (1,5,1) $valueA = $tab->values('a'); # [1,5,1] @values = $tab->values('a',-distinct=>1); # (1,5)
Ein Objekt der Klasse repräsentiert eine Tabelle, also eine Liste von gleichförmigen Zeilen. Die Namen der Kolumnen werden dem Konstruktor der Klasse übergeben. Sie bezeichnen die Komponenten der Zeilen. Die Zeilen sind Objekte der Klasse Quiq::TableRow.
Siehe quiq-ls
$tab = $class->new(\@columns);
Liste der Kolumnennamen (Strings).
Referenz auf Tabellen-Objekt
Instantiiere ein Tabellen-Objekt mit den Kolumnennamen @columns und liefere eine Referenz auf das Objekt zurück. Die Kolumnennamen werden nicht kopiert, die Referenz wird im Objekt gespeichert. Die Liste der Zeilen ist zunächst leer.
@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.
$i = $tab->index($column);
Kolumnenname (String).
Liefere den Index der Kolumne $column. Der Index einer Kolumne ist ihre Position innerhalb des Kolumnen-Arrays.
$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($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,$column,$val) = @_; ... return $color; }
Die Terminal-Farbe ist eine Zeichenkette, wie sie Quiq::AnsiColor erwartet. Anwendungsbeispiel siehe quiq-ls.
Text-Tabelle (String)
1.145
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.