Вам нужно учитывать пользователя, которого вы загружаете через FTP, пользователь Perl запускает файл, а пользователь Drupal запускается как.
Вы упомянули разрешения одинаковые, но владение ими тоже?
Обычно drupal загружает файлы от имени пользователя apache (apache, www-data или любой другой пользователь, настроенный для запуска apache). Если Perl работает от имени другого пользователя, то необходимо установить права доступа к загруженному файлу, чтобы пользователь Perl мог выполнять файл, принадлежащий apache.
Если это так, и сценарий Perl должен выполнить этот файл, то вы можете использовать функцию PHP chmod после загрузки, чтобы установить файл как исполняемый (возможно, 755).