【问题标题】:i want to search for a string in a file using perl我想使用 perl 在文件中搜索字符串
【发布时间】:2019-06-25 20:30:50
【问题描述】:

我想使用 perl 代码在文件中搜索字符串

我想从示例输入文件中搜索“unix”字符串

use strict;
use warnings;
my $file = "sample";
open my $fh, '<', $file or die "Could not open '$file' $!\n";

while (my $line = <$fh>) {
   chomp $line;
   my @strings = $line = ~ /unix/g;
   foreach my $s (@strings) {
     print "'$s'";
   }
}

我是这样的

在 strings.pl 第 8 行第 1 行的模式匹配 (m//) 中使用未初始化的值 $_。 '18446744073709551615'

【问题讨论】:

  • 使用$line =~ /unix/g; 而不是$line = ~ /unix/g; 你在=~ 之间有一个你不应该使用的空格
  • =~ 是单个运算符,中间不要加空格。

标签: perl


【解决方案1】:

正如人们在 cmets 中已经提到的那样,您有一个小错字。绑定运算符=~ 的两个字符之间不能有空格。

您可能认为添加不需要的空格会产生语法错误。但是,不幸的是,=~ 都被用作运算符,因此您会得到一个与您期望的完全不同的语句,而不是语法错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-14
    • 2013-06-19
    • 1970-01-01
    • 2019-01-22
    • 2021-07-12
    • 2015-11-18
    • 1970-01-01
    相关资源
    最近更新 更多