Цитата Сообщение от DogEater Посмотреть сообщение
Приведённый вами класс означает любой символ кроме p и P, о чём свидетельствует ^ в начале символьного класса.
Безусловно выражение $dialed_number=~s/[Pp]//g; прибьёт все p и P в строчке. А вдруг там проскочат другие не-цифры?
Кстати, как в логе АТС отображается нажатия всяких флашей или решёток при наборе?
Если уж хочется простоты то лучше $dialed_number=~s/\D+//g;
Тогда if ($dialed_number=~/(\d+)/) точно сработает ))
я предпочитаю выражения упрощать (чтобы самому потом понять , что написал раньше , поскольку не гуру ) . проще забанить ненужные . Написать тогда [^Pp#$* итп.] имхо нагляднее , а работает также . Исправить и добавить что-то еще и школьник потом сможет .
Имхо , конечно.