if (определено $ x && $ x! ~ M / \ D /) {}
или же
$ x = 0, если! $ Х;
if ($ x! ~ m / \ D /) {}
Это небольшой разброс в ответе Викай, но позвольте мне объяснить мои причины такого изменения.
Выполнение регулярного выражения для неопределенного значения приведет к появлению ошибки и к выходу кода во многих, если не в большинстве сред. Проверка, определено ли значение или установка регистра по умолчанию, как я делал в альтернативном примере, перед запуском выражения, как минимум, сохранит ваш журнал ошибок.