Вы можете извлечь несколько значений из строки, используя «захват».Базовая версия работает следующим образом.Вы захватываете текст в подходящем регулярном выражении, окружая текст (...)
.В этом примере мы извлечем серии непробельных символов по обе стороны от ":".
use feature 'say'; # for "say()"
$_ = 'Invalid version of perl: 5.8.7';
if (/(\S+): (\S+)/) {
say "Language = $1";
say "Version = $2";
}
Захваченный текст помещается в переменные с именами $1
и $2
.Обратите внимание, что мы помещаем все совпадения в оператор if
, чтобы убедиться, что наше регулярное выражение совпадает, прежде чем что-либо отображать.
Альтернативный подход, облегчающий понимание вашего кода, заключается в копировании соответствующих данных в именованные переменные, подобные этому:
use feature 'say'; # for "say()"
$_ = 'Invalid version of perl: 5.8.7';
if (my ($language, $version) = /(\S+): (\S+)/) {
say "Language = $language";
say "Version = $version";
}
Как уже отмечали другие, документацию по Perl стоит прочитать, если вы новичок в этом языке.В этом случае вам следует потратить час или два на изучение perlretut .