У меня есть следующий пример кода
#!/usr/bin/perl
use strict;
use warnings;
my $b = "Size: 200 GB";
if ($b =~ /Size: (\d+) GB/) {
my $match1 = $1;
print "Match1 : $match1\n";
}
my $match2;
my $c = "Size: GB";
$c =~ /Size: (\d+) GB/;
$match2 = $1;
print "Match2 : $match2\n";
Если я запускаю этот код как есть, $ match2 получает значение 200, потому что $ 1 назначено 200 из предыдущего блока.Если $ c = "Размер: 400 ГБ", то $ match2 становится 400, потому что отсюда заполняются значения $ 1: $ c = ~ / Size: (\ d +) GB /;Я могу решить эту проблему, поместив оператор if, например if ($ c = ~ / Size: (\ d +) GB /) {$ match2 = $ 1;} Но есть ли лучший способ сбрасывать значение $ 1 каждый раз?