Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将perl脚本按顺序添加到找到的脚本中?_Perl_Search_File Io_Printing - Fatal编程技术网

如何将perl脚本按顺序添加到找到的脚本中?

如何将perl脚本按顺序添加到找到的脚本中?,perl,search,file-io,printing,Perl,Search,File Io,Printing,我在这方面是一个完全的新手,但我感谢任何和所有的帮助。我运行这个脚本是为了在有日期的子目录中查找与特定序列匹配的字符串,然后将结果打印到新文件中。子目录名为“20110101”、“20110102”、“20110103”等。它可以很好地找到字符串,但当它将字符串打印到新文件时,会使它们失去顺序。它将在20110107之前打印20110129。我如何修复这个问题,以便它按照字符串在子目录中的顺序打印字符串?提前谢谢你的帮助 use strict; use warnings; use File::F

我在这方面是一个完全的新手,但我感谢任何和所有的帮助。我运行这个脚本是为了在有日期的子目录中查找与特定序列匹配的字符串,然后将结果打印到新文件中。子目录名为“20110101”、“20110102”、“20110103”等。它可以很好地找到字符串,但当它将字符串打印到新文件时,会使它们失去顺序。它将在20110107之前打印20110129。我如何修复这个问题,以便它按照字符串在子目录中的顺序打印字符串?提前谢谢你的帮助

use strict;
use warnings;
use File::Find;

my $starting_path = "/d2/aschwa/test";

open my $output, '>>', 'KDUX_METARS.txt' or die $!; #open file to write data

print STDOUT "Finding METAR files\n";

find(

    sub {
        return unless -e -f;
        if ( open my $infile, '<', $_ ) {
            while ( my $line = <$infile> ) {
                print $output $line if $line =~ m/(KDUX ....05Z|KDUX ....55Z)/;
           }
        }
        else {
            warn "$_ couldn't be opened: $!";
        }
    },
    $starting_path
);
close $output or die $!;
使用严格;
使用警告;
使用File::Find;
my$starting_path=“/d2/aschwa/test”;
打开我的$output“>>”、“KDUX_METARS.txt”或die$#打开文件以写入数据
打印STDOUT“查找METAR文件\n”;
发现(
潜艇{
返回,除非-e-f;
如果(打开我的$infle,'
您可以像Find一样调用File::Find::Find函数(\%opts,@dirs)

$opts{wanted}==对每个元素执行的操作(调用find(\&sub,@dirs)时等于to&sub)

$opts{preprocess}==对整个列表的操作

您可以像Find一样调用File::Find::Find函数(\%opts,@dirs)

$opts{wanted}==对每个元素执行的操作(调用find(\&sub,@dirs)时等于to&sub)

$opts{preprocess}==对整个列表的操作

您可以像Find一样调用File::Find::Find函数(\%opts,@dirs)

$opts{wanted}==对每个元素执行的操作(调用find(\&sub,@dirs)时等于to&sub)

$opts{preprocess}==对整个列表的操作

您可以像Find一样调用File::Find::Find函数(\%opts,@dirs)

$opts{wanted}==对每个元素执行的操作(调用find(\&sub,@dirs)时等于to&sub)

$opts{preprocess}==对整个列表的操作

perl -E 'use File::Find; find({wanted => sub {say $File::Find::name}, preprocess => sub { reverse sort @_} }, ".")'
.
./20110129
./20110107
./20110101

perl -E 'use File::Find; find({wanted => sub {say $File::Find::name}, preprocess => sub { sort @_} }, ".")'
.
./20110101
./20110107
./20110129