3

どうか、どうすればこのような試合を行うことができますか?

my @variable = split;
if ($variable[any_index] =~ m/'string'/) {print $variable[next_index];} 

$ variable [any_index]を指定する簡単な方法はありますか?

ステートメント「print$variable [next_index]」で、ある種の「先読み」を使用することは可能ですか?

前もって感謝します!

4

3 に答える 3

4
print $variable[$_] for grep { $variable[$_-1] =~ /'string'/ } 1..$#variable
于 2012-10-12T22:20:09.517 に答える
2
if ( my ($idx) = grep $variable[$_] =~ /string/, 0..$#variable ) {
    print "$variable[$idx+1]\n";
}

すべての一致について印刷する場合は、

for my $idx ( grep $variable[$_] =~ /string/, 0..$#variable ) {
    print "$variable[$idx+1]\n";
}
于 2012-10-12T22:19:07.730 に答える
1

誤解しないでください、しかしgrepとmapはいつも私を怖がらせてきました。これが私のやり方です:

#!/usr/bin/perl -w
use strict;

my @array = qw/hello world hello there hello you/;
foreach (0..$#array) 
{
    print $array[$_ + 1]."\n" if $array[$_] =~ /llo/;
}

これは印刷されます:

world
there
you
于 2012-10-13T05:01:46.743 に答える