Ich habe ein anständig funktionierendes Skript bekommen, und bin glücklich mit seinen Ergebnissen, größtenteils dank der Informationen, die ich hier gefunden habe.Perl - Wie man einen Aktualisierungszeitstempel generiert
Eine Sache, die ich nicht richtig scheinen kann, ist der Zeitstempel. Derzeit bin ich dieses
use POSIX qw/strftime/;
my $timestamp = strftime('%m/%d/%Y %I:%M.%S %p %Z',localtime);
verwendet, die gut funktioniert, mit der Ausnahme, dass, wenn ich $ Zeitstempel nennen, wird es immer der gleiche Zeitstempel für alle Teile des Codes (überhaupt nicht aktualisieren).
ich versucht, dies mit einem Unterprogramm zu beseitigen (was ich noch nie zuvor getan haben):
sub GetLoggingTime {
use POSIX qw/strftime/;
my $LoggingTime = strftime('%m/%d/%Y %I:%M.%S %p %Z',localtime);
return $LoggingTime;
}
my $timestamp = GetLoggingTime();
print "$timestamp \n";
sleep(2);
print "$timestamp \n";
offensichtlich die beiden Drucke und der Schlaf sind, um zu versuchen und sehen, ob es „Aktualisierung“ ist, was es ist nicht. Beide Zeitstempel werden mit der gleichen Zeit gedruckt.
Ich versuchte dann, die Subroutine direkt aufzurufen, einen Ausdruck innerhalb der Unterroutine hinzuzufügen und ihn mit & GetLoggingTime aufzurufen, aber das tat gar nichts (keine Ausgabe).
Ich weiß, ich vermisse wahrscheinlich etwas offensichtlich, aber ich kann es einfach nicht finden. Gibt es einen einfachen Weg, um dies zum Laufen zu bringen, oder gibt es eine einfache Möglichkeit, einen Zeitstempel zu erhalten, der sich im Laufe des Skripts in Echtzeit aktualisiert?
Vielen Dank im Voraus!
Sie müssen Ihr Unterprogramm erneut aufrufen, damit der Wert aktualisiert wird :) – squiguy