Prty::Progress - Berechne Fortschrittsinformation
Prty::Hash
Mit print:
use Prty::Progress; $| = 1; my $n = 5; my $p = Prty::Progress->new(5); for my $i (1 .. $n) { sleep 1; print $p->msg($i,'i/n x% t/t(t) x/s t/1'); } print $p->msg;
Mit R1::Log2:
use R1::Log2; use Prty::Progress; my $log = R1::Log2->new(\*STDOUT); my $msg; my $n = 5; my $p = Prty::Progress->new($n); for my $i (1 .. $n) { sleep 1; $msg = sprintf '%s %s %s %s %s',$p->info($i); $log->printCr($msg); } $log->printLn($msg);
Gesamtzahl der Schritte
Startzeitpunkt
Aktueller Schritt
Vergangene Zeit in Sekunden (mit Nachkommastellen)
Die letzte von msg() erzeugte Meldung.
$pi = $class->new($n,@opt);
Die Methode liefert Meldungen. Mit -show=>0 kann die Ausgabe von Meldungen verhindert werden. Beispiel:
$pi = $class->new($n,-show=>$verbose);
Referenz auf Progress-Objekt
$pi->step($i);
Aktueller Schritt.
$str = $pi->count;
Liefere Stand in der Form "I/N". I ist die Anzahl der absolvierten Schritte, N ist die Anzahl der Gesamtschritte.
$str = $pi->percent;
Liefere Verarbeitungsstand in Prozent.
$str = $pi->time;
Liefere Zeitinformation in der Form "HhMmSs/HhMmSs(HhMmSs)". Der erste Teil ist die bislang verstrichene Zeit, der zweite Teil die geschätzte Gesamtzeit, der dritte Teil ist die geschätzte verbleibende Zeit.
$str = $pi->performance; $str = $pi->performance($prec);
Liefere Durchsatz in der Form "X.XX/s" (Schritte pro Sekunde).
Anzahl Nachkommastellen
$str = $pi->timePerStep; $str = $pi->timePerStep($prec);
Liefere Durchsatz in der Form "HhMmSs.x/1" (Zeit pro Schritt).
Anzahl Nachkommastellen der Sekunde
($count,$percent,$time,$performance,$timePerStep) = $pi->info; ($count,$percent,$time,$performance,$timePerStep) = $pi->info($i);
Setze auf Schritt $i. Ist $i nicht angegeben, wird kein neuer Schritt gesetzt, sondern die Information zum aktuellen Schritt geliefert.
Verarbeitungsstand in der Form "I/N". I ist die Anzahl der absolvierten Schritte, N ist die Anzahl der Gesamtschritte.
Verarbeitungsstand in Prozent.
Zeitinformation in der Form "HhMmSs/HhMmSs". Der erste Teil ist die bislang verstrichene Zeit, der zweite Teil die geschätzte Gesamtzeit.
Durchsatz in der Form "X.XX/s" (Schritte pro Sekunde).
Durchsatz in der Form "HhMmSs.x/1" (Zeit pro Schritt).
$str = $pi->msg; $str = $pi->msg($fmt,@args); $str = $pi->msg($i,$fmt,@args);
Erzeuge eine Fortschrittsmeldung und liefere diese zurück.
Die Methode ist für die eine einzeilige Ausgabe konzipiert, die sich kontnuierlich überschreibt, bis das Ende der Verarbeitung erreicht ist. Die letzte Meldung bleibt stehen.
Die erste Form (ohne Parameter) liefert die zuletzt erzeugte Meldung noch einmal mit "\n" am Zeilenende.
Die zweite Form erzeugt die Meldung für den aktuellen Schritt und beendet sie mit "\r".
Die dritte Form bewirkt dasselbe wie 2), nur dass zuvor das Objekt auf Schritt $i gesetzt wird.
Ist bislang kein Schritt ausgeführt worden, liefert die Methode einen Leerstring ("").
Setze Objekt auf Schritt $i. Ist $i nicht angegeben, wird kein neuer Schritt gesetzt, sondern die Information des aktuellen Schritts in die Meldung eingesetzt.
Formatelement für sprintf(), erweitert um folgende Platzhalter:
Wert von $pi->count.
Wert von $pi->percent.
Wert von $pi->time.
Wert von $pi->performance.
Wert von $pi->timePerStep.
Argumente für sprintf-Platzhalter.
Erzeugte Meldung
1.107
Frank Seitz, http://fseitz.de/
Copyright (C) 2017 Frank Seitz
This code is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
To install Prty, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Prty
CPAN shell
perl -MCPAN -e shell install Prty
For more information on module installation, please visit the detailed CPAN module installation guide.