2

システム内の特定のフォルダにファイルがあります。私はその名前が数字であることを知っています、そして私はその数字を変数に持っています。

私が知らないのは、このファイルの拡張子です。

このファイルをすくい上げるにはどうすればよいですか?

4

2 に答える 2

3
(my $filename) = glob "$specific_folder_in_the_system/$that_number.*";

編集:池上が以下に記しているように、これはディレクトリの特定のパス名に影響されます。そのディレクトリ名にスペースやその他の特殊文字が含まれていると失敗します。文字列のワイルドカード以外の部分を埋め込み引用符で囲むことにより、これを軽減できます。

(my $filename) = glob "'$specific_folder_in_the_system/$that_number.'*";

しかし、それでもたとえば 、失敗し$specific_folder_in_the_system = "/Users/O'Neal, Patrick";ます。

現在の作業ディレクトリを変更してもかまわない場合は、chdir($specific_folder_in_the_system) or die最初に、だけを使用できます。これは、実際に数値であるglob("$that_number.*")限り安全です。$that_number

との代わりにopendirとを組み合わせて使用​​することもできます。grepglob

opendir(my $dir, $specific_folder_in_the_system) or die;
(my $filename) = grep /^$that_number\./ readdir $dir;
于 2012-07-03T13:43:07.930 に答える
2
my ( $file ) = glob "$num.*" ;
于 2012-07-03T13:38:49.643 に答える