私はここで見つけた情報の大部分のおかげで、これまでのところうまく機能しているスクリプトを手に入れました。Perl - 更新タイムスタンプを生成する方法
しかし、私が正しく得ることができないことの1つは、タイムスタンプです。現在、私は$タイムスタンプを呼び出すとき、それは常に(まったく更新されません)、コードのすべての部分で同じタイムスタンプになることを除いて、よく働くこの
use POSIX qw/strftime/;
my $timestamp = strftime('%m/%d/%Y %I:%M.%S %p %Z',localtime);
を使用しています。
私は(私は前にやったことがない)サブルーチンでこれを解決しようとしました、明らかに2枚のプリントや睡眠がしようとすると、それは「更新」であるかどうかを確認するためにある
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";
それそうではありません。両方のタイムスタンプは同じ時間に印刷されます。
サブルーチンを直接呼び出して、サブルーチン内で印刷を追加し、& GetLoggingTimeを使用して呼び出しましたが、何もしませんでした(出力なし)。
私はおそらく明らかに何かが不足していると知っていますが、私はそれを見つけることができません。それを動作させるシンプルな方法はありますか、スクリプトの進行に伴ってリアルタイムで更新されるタイムスタンプを取得する簡単な方法はありますか?
ありがとうございます!
値を更新するためにサブルーチンを再度呼び出さなければなりません:) – squiguy