perl regx,在单词connect之后选择单词

perl regx,在单词connect之后选择单词,perl,Perl,这是我的日志 connect called menu transfer disconnect connect called transfer disconnect 我想选一个词,当这个词正好在, 当这个词像 连接 菜单 转移 断开连接意味着 我应该选择“转移”这个词 如果我的流量像 连接 打电话 转移 断开 那么我不想选择单词transfer,为什么要使用正则表达式?这不是一个好的用例。只是 while (<>) { chomp; last if ($_ eq 'connect')

这是我的日志

connect
called
menu
transfer
disconnect
connect
called
transfer
disconnect
我想选一个词,当这个词正好在, 当这个词像

连接 菜单 转移 断开连接意味着

我应该选择“转移”这个词

如果我的流量像

连接 打电话 转移 断开


那么我不想选择单词transfer

为什么要使用正则表达式?这不是一个好的用例。只是

while (<>) { chomp; last if ($_ eq 'connect'); }
$_ = <>;
print;
while(){chomp;last if($\eq'connect');}
$_ = ;
印刷品;

可以。

为什么要使用正则表达式?这不是一个好的用例。只是

while (<>) { chomp; last if ($_ eq 'connect'); }
$_ = <>;
print;
while(){chomp;last if($\eq'connect');}
$_ = ;
印刷品;

可以。

使用正则表达式来解决此问题将假定您的日志文件位于单个变量中。如果您的日志文件不是很大,您可以按如下方式执行此操作:

use File::Slurp qw(slurp);
my $log = slurp('path/to/logfile');
或者,如果您不希望为此使用非标准Perl模块:

{
  local $/;
  open my $fh, '<', 'path/to/logfile' or die $!;
  my $log = <$fh>;
  close $fh;
}

使用正则表达式来解决这个问题将假定您的日志文件位于单个变量中。如果您的日志文件不是很大,您可以按如下方式执行此操作:

use File::Slurp qw(slurp);
my $log = slurp('path/to/logfile');
或者,如果您不希望为此使用非标准Perl模块:

{
  local $/;
  open my $fh, '<', 'path/to/logfile' or die $!;
  my $log = <$fh>;
  close $fh;
}

您可以尝试以下方法:

更新至标准Perl发行版:

#!/usr/bin/perl
use strict;
use warnings;

my $count = 0;
while(<DATA>) {
    chomp;
    $count = 1 if $_ eq 'connect';
    if ($count == 3) {
        print "2 words after is : $_\n";
        $count = 0;
    }
    $count++ if $count;
}


__DATA__
connect
called
menu
transfer
disconnect
connect
called
transfer
disconnect

您可以尝试以下方法:

更新至标准Perl发行版:

#!/usr/bin/perl
use strict;
use warnings;

my $count = 0;
while(<DATA>) {
    chomp;
    $count = 1 if $_ eq 'connect';
    if ($count == 3) {
        print "2 words after is : $_\n";
        $count = 0;
    }
    $count++ if $count;
}


__DATA__
connect
called
menu
transfer
disconnect
connect
called
transfer
disconnect

这不是一个合乎语法的句子。请改进你的问题。这不是一个合乎语法的句子。请改进您的问题。您如何在标准Perl中做到这一点?您如何在标准Perl中做到这一点?您能否演示如何使用标准Perl发行版做到这一点?您能否演示如何使用标准Perl发行版做到这一点?