私は perl を学習しようとしていますが、特に File::Find モジュールを使用して画像のディレクトリ ツリーを検索し、既存のファイル名がカメラのファイル名と一致するかどうかを確認しています。ファイル名がそこにある場合、ファイルはこのカメラから既に転送されていると想定し、それ以上処理しません。ファイル名が見つからない場合は、ファイルに対して何らかのアクションを実行したいと思います。
基本的な構造を作成するために find2perl を使用しましたが、ファイルの検索には機能します。しかし、検索が失敗したかどうかを確認する方法が見つからないようです。File::Find::find は、動作する値を返していないようです。動作する方法や、使用している '&wanted' サブディレクトリからの戻り値を使用する方法がわかりません。
File::Find::find が一致するファイルを見つけるのに成功しなかったかどうかを判断する最適な方法は何ですか? プログラムの先頭で特定の値に設定され、検索が成功した場合にのみ変更されるグローバル フラグ変数を使用する必要がありますか? 検索後にその値をチェックして、変更された (成功) かどうか (何も見つからない) を確認できると思います。
アイデアや提案はありますか?
基本的な構造は次のとおりです。
# Traverse desired filesystems
File::Find::find({wanted => \&wanted}, '/files/multimedia/pictures/');
exit;
sub wanted {
my ($dev,$ino,$mode,$nlink,$uid,$gid);
if ( (($dev,$ino,$mode,$nlink,$uid,$gid) = lstat($_)) && /^$ARGV[0]\z/si ) {
print("found: $name\n");
}
}