Я попытаюсь прочесть ваши мысли здесь и выяснить, что вы подразумеваете под "не работает", указав вам документацию для chomp :
Эта более безопасная версия "chop" удаляет любую завершающую строку, которая соответствует текущему значению $ / (также известному как $ INPUT_RECORD_SEPARATOR в
«Английский» модуль). Возвращает общее количество символов, удаленных из всех своих аргументов .
Чтобы использовать его правильно (при условии, что вы хотите остаток строки, а не перевод строки), не принимайте его возвращаемое значение:
my $port = `$cmd`;
chomp $port;
print "$port\n";
Вы можете удалить любой нежелательный окружающий пробел с помощью trim
в основном модуле String :: Util :
use String::Util 'trim';
trim $port;