Работать-то работает, но когда-нибудь Вы обнаружите, что он работает неверно.
Что я Вам пишу, что автор такого же решения выше — Вы никого не послушали. Успехов, желаю начать периодически включать мозг.
Если есть несколько способов авторизации, то следует выделить общий интерфейс авторизации, который реализуют каждый из видов и этот способ передавать в статический метод авторизации юзера :) Модели не разные здесь, а одна — юзер.
Гляньте тогда в gui как определена PATH, скорее всего там оно прописано как %SystemRoot%\system32, а перл вряд ли зарезолвит такое. Ну и поменяйте на прямой путь, т.е. c:\Windows\System32 :)
GUI — это вроде как свойства компьютера, там где-то есть кнопка «Переменные окружения»
Там будут перечислены через точку с запятой папки, в которых будет искаться приложение, если оно запускается без указания папки его нахождения и его нет в текущей папке.
cmd.exe находится в [disk]:\Windows\System32\cmd.exe вроде, так что эта папка должна быть в %PATH%, ну а если нет, то добавьте :)