By default, Device::Modem logs to /var/log/modem/modem.log which is writeable for the group dialout. Make sure the user your application runs as has been added to that group, or override the log file configuration in the Device::Modem constructor.