Использование набора результатов из моей БД ....
my $item_name = "Special Anniversary set by Brand Name"
my $item_name1 = $item_name;
$item_name1 =~ m/brand name/i;
$brand = $&; # a system var of the regex result
Торговая марка выводит правильно: «Торговая марка»
my $item_name2 = $item_name;
$item_name2 =~ m/Special Anniversary by brand_name/i;
$sub_brand = $&; # a system var of the regex result
Суббренд выводится неправильно / непоследовательно.
if ( $item_name eq 'Special Anniversary set by Brand Name' )
{
$brand outputs as 'Brand Name'; # correct
$sub_brand outputs as 'Special anniversary by Brand Name'; #correct
}
elsif( $item_name eq 'Something else by Brand Name' )
{
$brand outputs as 'Brand Name';# correct
$sub_brand = 'Brand Name'; #INCORRECT I expect it to be null.
}
Надеюсь, это достаточно лаконично, но понятно.
Однако, если нет, суббренд возвращает название бренда (или, возможно, конец желаемой строки), если оно не совпадает .
Я думаю, он возвращает значение $ & из первого регулярного выражения, потому что оно не было перезаписано совпадением во втором регулярном выражении.
Я был бы признателен за любые ваши предложения.