Если вы хотите сделать это разрушительным образом, это самый быстрый способ сделать это.
$str =~ tr/0-9//cd;
tr
аннулирует все символы в c
значении 0-9
в ничто, d
выбирает их.
Одно предупреждениеЭтот подход, как и у Филиппа Поттера, состоит в том, что если бы еще одна группа цифр была ниже по цепочке, они были бы объединены с первой группой цифр.Так что не ясно, что вы хотели бы сделать это.
Безошибочный способ получить одну и только одну группу цифр:
( $str ) = $str =~ /(\d+)/;
Совпадение в контексте списка возвращает список перехватов.Парень вокруг $str
состоит в том, чтобы просто поместить выражение в контекст списка и присвоить первый захват $str
.