让我们解释一下在文本文件“script.txt”中,我必须找到“foo”这个词多少次出现以及在哪行中我必须列出那些行。
答案 0 :(得分:0)
尝试以下
my $total;
my $lines;
open my $fh,"<","file.txt";
while (<DATA>)
{
if(my $ech_count = () = /\bfoo\b/g)
{
$total+=$ech_count;
$lines.=$.."\n";
}
}
print " Total count : $total\nLines are: \n $lines";
在上面的脚本$ech_count
中,存储= () =
执行的行中的匹配数。
$.
这是perl inbuild特殊变量,它给出了当前的行号。
答案 1 :(得分:0)
请试试这个:
use strict;
use warnings;
my @lines = <DATA>;
my ($word_count, $total) = '';
foreach my $single(@lines)
{
if($single=~m/\bfoo\b/g)
{
$word_count = $single=~s/\bfoo\b/$&/g;
print "Line Matched: $single\n";
$total = $total + $word_count;
}
}
print "Foo Count: $total\n";