Это системозависимая вещь. К тому же, у хоста может быть более одного IP: 127.0.0.1 и сколько угодно на внешних интерфейсах.
Попробуй через доменное имя:
use POSIX;
use Socket;
($sysname, $nodename, $release, $version, $machine) = POSIX::uname();
print inet_ntoa(Socket::gethostbyname($nodename))."\n";
Обычно программе передают тот IP, с которым ей работать, а не наоборот. Для работы с сетью знать свой IP вообще не обязательно.
Кстати, в какой среде и ОС запускаешь perl?