Você pode passar -c para su para executar um comando. Se sudo permitir que você execute o comando, isso deve funcionar:
sudo su - john -c "/usr/share/script.pl"
Tenha em mente que, passando - para su , seu ambiente será o mesmo que se você tivesse efetuado login, portanto, se o script depender de variáveis de ambiente (como o caminho atual), talvez seja necessário fazer ajustes.