Мне кажется, что ты не с того конца зашел. Я не проверял, но к модему обращатся нужно так:
use Fcntl;
sysopen(MODEM,"/dev/ttyS0",O_NONBLOCK|O_RDWR) or die "Can\'t open modem: $!\\n";
Насчет ttyS0 - это интерфейс ком-порта, на котором сидит модем, думаю, сам догаался. Удачи.