请问,我该怎么做这样的比赛:
my @variable = split;
if ($variable[any_index] =~ m/'string'/) {print $variable[next_index];}
是否有一种简单的方法来指定$ variable [any_index]?
是否可以在'print $ variable [next_index]'语句中使用某种“向前看”?
提前致谢!
答案 0 :(得分:4)
print $variable[$_] for grep { $variable[$_-1] =~ /'string'/ } 1..$#variable
答案 1 :(得分: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";
}
答案 2 :(得分:1)
别误会我的意思,但grep和地图总是吓到我。这是我的方式:
#!/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