3

「jan05.ndk」、「feb05.ndk」など、「.ndk」で終わるファイルが 100 個ある ALLEQData というフォルダーがあります。Perl スクリプトを使用して、「.ndk」で終わるすべてのファイルを開きたいと思います。 .ndk'、そのファイルに含まれる情報を読み取り、出力ファイルに配置します。以前は、1 つのファイルを開いて読み取るだけで済みました。

my $filename = "jan76_dec10.ndk";
open FILEEQ, "<$filename"
    or die "can't open '$filename' for reading: $!";
close FILEEQ;
    $icount = 0;
for ($j=0; $j<@equ_file; $j++) .....etc

次に、情報を読みます。情報を読み取って、必要な出力に並べ替えることができます。

「.ndk」で終わるすべてのファイルを 1 つずつ開き、読み取りと並べ替えを行い、そのファイルを閉じてから次のファイルに移動する方法がわかりません。

これが十分に明確であることを願っています。

4

3 に答える 3

7

グロブを使用:

my @filenames = glob('*.ndk');

for my $filename (@filenames) {
    open my $fh, '<', $filename
        or die "can't open '$filename' for reading: $!";
    # read/sort file

    close $fh;
}
于 2013-10-01T13:36:03.327 に答える
3

Perl のグロビング メカニズムを見てください。

于 2013-10-01T13:36:12.773 に答える
1

You could also read filenames from the command line:

while ($#ARGV > -1) {
    my $filename = shift;
    open my $fh, '<', $filename
        or die "can't open $filename for reading: $!";
    # ...
    close $fh;
}

Then call your perl script with a wild card expression:

your-script.pl *.ndk
于 2013-10-01T15:54:58.740 に答える