Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/10.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中使用filereader查找一行_Perl_Filereader_Param - Fatal编程技术网

在perl中使用filereader查找一行

在perl中使用filereader查找一行,perl,filereader,param,Perl,Filereader,Param,我创建了一个文本框。我想通过读取文本文件并使用Perl将每一行与文本进行比较来控制用户在文本框中写入的内容。在我的代码中,我填写了param('text') open(DATA),=~运算符的右侧必须是正则表达式 有关更多详细信息,请参阅。while() while (<DATA>) { chomp; if (param('text') =~ /\Q$_/) { print $_; } } { 咀嚼; 如果(参数('text')=~/\Q$\uu/

我创建了一个文本框。我想通过读取文本文件并使用Perl将每一行与文本进行比较来控制用户在文本框中写入的内容。在我的代码中,我填写了
param('text')


open(DATA),=~运算符的右侧必须是正则表达式

有关更多详细信息,请参阅。

while()
while (<DATA>)
{
  chomp;
  if (param('text') =~ /\Q$_/)
  {
      print $_;
  }   
}
{ 咀嚼; 如果(参数('text')=~/\Q$\uu/) { 打印美元; } }
以下内容可能会有所帮助:

use strict;
use warnings;

my $text = <<END;
This is just a BU.NCH of text
in a here document that will
be used for some matching in
just a little bit.
END

while (<DATA>) {
    chomp;
    if ( $text =~ /\b\Q$_\E\b/i ) {
        print $_, "\n";
    }
}

__DATA__
this
some
bu.nch
a
hello
world
在尝试匹配从文件中读取的单词之前,您需要先选择它,以删除记录分隔符(如果有)。该分隔符通常是
\n
。您还需要考虑以下几项:

  • 是否需要不区分大小写的匹配
  • 转义单词中可能存在的任何元字符
  • 强制单词边框以防止字符串内匹配
  • 上面的第(1)项是通过使用
    /i
    修饰符来实现的。第(2)项是通过在正则表达式中包含“word”来完成的,如:
    \Q$\ue
    \Q
    uote meta;
    \E
    nd Quote meta)。最后一项使用
    \b
    \b\Q$\ue\b

    希望这有帮助!

    试试这个

    my $text = param('text');
    
    open(DATA, "<baba.txt") or die "Couldn't open file file.txt, $!";
    while(<DATA>)
    {
        if($_=~ /$text/ )
        {
            print $_;
        }   
    }
    
    my$text=param('text');
    
    open(DATA),“实际上,这对我的情况来说还不够,因为用户post mark 1990和我想控制他们是否可以写1990。@user3297904从文件中发布一些行,用户输入示例。他们将发布mark 1990、steve 1890,在我的文本文件中只写1990 1890 1991,每行只有一个日期
    this
    some
    bu.nch
    a
    
    my $text = param('text');
    
    open(DATA, "<baba.txt") or die "Couldn't open file file.txt, $!";
    while(<DATA>)
    {
        if($_=~ /$text/ )
        {
            print $_;
        }   
    }