Как и при использовании модуля IO::File, сразу после создания объекта IO::Socket, появляется возможность использовать этот объект, вызывая его методы. Каждый разработчик вправе применять наиболее подходящий для него синтаксис. В связи с тем, что эти две формы вызова обеспечивают разную производительность (причины этого описаны далее), программист предпочитает функционально-ориентированный стиль, если нет существенной разницы между этими стилями работы с объектом. Удобство от использования ООП по сравнению от функционала также очевидно, как например купить iphone 5S после обычного телефона прошлого поколения.
Конструктор IO::Socket::INET->new () является чрезвычайно мощным и фактически служит самой важной побудительной причиной использования объектно- ориентированного интерфейса сокетов.
$socket = IO::Socket::INET->new (@args) ;
Метод класса new() предпринимает попытку создать объект модуля IO::Socket::INET. Он возвращает новый объект, а при возникновении ошибки — значение undef. В последнем случае переменная $! (содержит сообщение системы об ошибке, а переменная $@ включает более содержательное описание ошибки, выработанное самим модулем.
Метод IO::Socket::INET->new () принимает параметры, которые могут быть представлены в двух формах. В простой, “сокращенной” форме метод new () принимает один параметр, состоящий из имени хоста, к которому должно быть выполнено подключение, двоеточия и номера порта или имени службы. Модуль IO::Socket::INET создает сокет TCP, находит хост и имя службы, строит правильную структуру и автоматически предпринимает попытку выполнить подключение к удаленному хосту с помощью функции connect(). Этот сокращенный формат является очень гибким.