数千回ls --full-time
呼び出すオーバーヘッドを回避するために、Perl スクリプトからの出力を再現したいと考えています。statls
関数を使用して、そこからすべての情報を取得したいと考えていました。ただし、 ls 出力のタイムスタンプは高解像度クロックを使用するため、ナノ秒数も含まれます (GNU docs によると、これは --full-time が と同等であり、full-iso 時間スタイルにナノ秒)。--format=long --time-style=full-iso
Time::HiResモジュールに出くわしました。これは、標準の stat 関数を atime/mtime/ctime を浮動小数点数として返す関数でオーバーライドしますが、lstatのオーバーライドはありません。シンボリックリンクで stat を呼び出すと、リンク自体ではなく、リンクされたファイルの情報が返されるため、これは問題です。
私の質問はこれです - Time::HiRes::stat と同じ方法で atime/mtime/ctime を返す lstat のバージョンはどこにありますか? それに失敗した場合、シンボリックリンクの modtime を高解像度で取得する別の方法があります (ls を呼び出す以外に)。