Это должно быть очевидно, но я просто этого не вижу.
У меня есть документы, содержащие тысячи записей, как показано ниже:
Row:1 DATA:
[0]37755442
[1]DDG00000010
[2]FALLS
[3]IMAGE
[4]Defect
[5]3
[6]CLOSED
Мне удалось разделить каждую запись, и теперь я пытаюсь разобрать каждое поле.
Я пытаюсь сопоставить пронумерованные заголовки, чтобы я мог извлечь данные, которые следуют за ними, но проблема в том, что мои совпадения возвращают мне только «1», когда они успешны, и ничего, если нет. Это происходит с любым матчем, который я пытаюсь подать.
Например, применительно к простому слову в каждой записи:
my($foo) = $record=~ /Defect/;
print STDOUT $foo;
выводит «1» для каждой записи, если она содержит «Дефект», и ничего, если она содержит что-то еще.
В качестве альтернативы:
$record =~ /Defect/;
print STDOUT $1;
абсолютно ничего не печатает.
$record =~ s/Defect/Blefect/
, с другой стороны, прекрасно заменит «Дефект» на «Блефект».
Я действительно сбит с толку, почему мои матчи так мизерны. Любая помощь будет очень признательна.