システム内の特定のフォルダにファイルがあります。私はその名前が数字であることを知っています、そして私はその数字を変数に持っています。
私が知らないのは、このファイルの拡張子です。
このファイルをすくい上げるにはどうすればよいですか?
(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
とを組み合わせて使用することもできます。grep
glob
opendir(my $dir, $specific_folder_in_the_system) or die;
(my $filename) = grep /^$that_number\./ readdir $dir;
my ( $file ) = glob "$num.*" ;