powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Perl - сравнить регулярное выражение и получить совпадение в одном операторе
1 сообщений из 1, страница 1 из 1
Perl - сравнить регулярное выражение и получить совпадение в одном операторе
    #39395459
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не соображу, как это правильно сформулировать.
У меня есть массив хешей.
Мне нужно получить из него элементы, соответствующие определенному критерию, а затем преобразовать его в хеш хешей, значением которых является совпадающая часть регулярного выражения.
Раньше я использовал такое выражение:
Код: php
1.
2.
3.
4.
5.
$idx->{'channel'} = {
  map {$_->{'id'} => ($_->{'name'} =~ m/^(CAM-[-0-9]+)/)}
  grep {$_->{'name'} =~ m/^(CAM-[-0-9]+)/}
  @{$cache->{'media'}}
};


Затем мне потребовалось усложнить регулярное выражение, в нем теперь пришлось определить подзапрос:
Код: php
1.
2.
3.
4.
5.
$idx->{'channel'} = {
  map {$_->{'id'} => ($_->{'name'} =~ m/^((CAM|CH)-[-0-9]+)/)[0]}
  grep {$_->{'name'} =~ m/^((CAM|CH)-[-0-9]+)/}
  @{$cache->{'media'}}
};


Так вроде бы работает, но нет уверенности, что все правильно.
Можно быть уверенным, что Perl всегда вычисляет справа налево?
________________________
Мы смотрим с оптимизмом...
...в оптический прицел.
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Perl - сравнить регулярное выражение и получить совпадение в одном операторе
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]