Я анализирую XML-файл, и после извлечения некоторой информации я хочу посмотреть, есть ли в конкретном поле символ «/» (косая черта).Поэтому я делаю следующий код:
if (defined($orgUIDLookup{$orgUidMid}))
{
my $country = $orgUIDLookup{$orgUidMid};
print "country = $country ";
if ($country !~ ?/?)
{
print "OK\n";
$airportRef{country} = $country;
}
else
{
print "no good\n";
$needHelp = 1;
}
}
Но, похоже, я получаю противоречивые результаты для узлов с косой чертой в них:
grep '^country = .*/' foo
country = CN/MA/RE no good
country = CN/MA/RE OK
country = CN/MA/RE OK
country = CN/MA/RE OK
country = RB/MJ OK
country = RB/MJ OK
country = RB/MJ OK
country = CN/MA/RE OK
country = CN/MA/RE OK
country = RB/MJ OK
country = RB/MJ OK
country = CN/MA/RE OK
country = CN/MA/RE OK
country = RB/MJ OK
country = RB/MJ OK
country = KR/TV OK
country = KR/TV OK
country = KR/TV OK
country = WS/AQ OK
country = AA/NT OK
country = AA/NT OK
country = AA/NT OK
country = AA/NT OK
country = AA/NT OK
country = AA/NT OK
Почему этот тест прошел бы черезelse
ветка в порядке в первый раз, но проходите через ветку if
через раз?