я хочу найти строку в файле, используя Perl - PullRequest
0 голосов
/ 25 июня 2019

Я хочу найти строку в файле, используя код 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'";
   }
}

я получаю вот так

Использование неинициализированного значения $ _ в сопоставлении с образцом (m //) в строке strings.pl 8, строке 1. '18446744073709551615'

1 Ответ

2 голосов
/ 25 июня 2019

Как уже упоминалось в комментариях, у вас есть небольшая опечатка.Оператор привязки =~ не может иметь пробел между двумя символами.

Можно ожидать, что добавление этого нежелательного пространства приведет к синтаксической ошибке.Но, к сожалению, и =, и ~ используются в качестве операторов, поэтому вместо синтаксической ошибки вы получите оператор, который делает нечто совершенно иное, чем вы ожидаете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...