4

次のことを実行できる何かがあるかどうか知りたいです。

folder1 has files "readfile1" "f2" "fi5"

私が知っている唯一のことは、 で始まるファイルを読み取る必要があるということです。readfile文字列 の後の名前に何があるかわかりませんreadfile。また、ディレクトリ内の他のファイルが . で始まることはありませんreadfile

openコマンドでこのファイルを開くにはどうすればよいですか?

ありがとうございました。

4

3 に答える 3

10

globを使用して、特定の文字列に一致するファイルを見つけることができます。

my ($file) = glob 'readfile*';
open my $fh, '<', $file or die "can not open $file: $!";
于 2010-07-15T21:22:01.993 に答える
2

globツールが示唆するように、単純なケースに使用できます。

my ($file) = glob 'readfile*';

正しいファイルを見つけるための基準がより複雑な場合は、ディレクトリ全体を読み取り、Perl の全機能を使用して、必要なものまでリストを絞り込みます。

use strict;
use warnings;
use File::Slurp qw(read_dir);

my $dir   = shift @ARGV;
my @files = read_dir($dir);

# Filter the list as needed.
@files = map { ... } @files;
于 2010-07-15T21:44:06.090 に答える
1

ディレクトリの内容を読むのにインポートは必ずしも必要ではありません - perl にはそれができる組み込み関数がいくつかあります:

opendir DIR, ".";
my ($file) = grep /readfile.*/, readdir(DIR);

open FILE, $file or die $!;
于 2010-07-15T22:33:59.167 に答える