Скрипт запускается N раз в секунду, из них в M случаях (M<<N) необходимо использовать сокет. Чтоб не тормозить выполнение скрипта в (M-N) случаях из-за компиляции модуля Socket пытался подгружать динамически его с помощью requie но что-то не получилось. Решил проблему следующим образом:
#more test
#!/usr/bin/perl5
if(???)
{
require ('./connect.pl');
print connect('??.???.???.?');
}
else {???}
#more connect.pl
#!/usr/bin/perl5
use Socket;
sub connect
{
my $chIP=@_[0];
socket(SOCK, PF_INET, SOCK_STREAM, getprotobyname('tcp'));
my $paddr = sockaddr_in('???', inet_aton('???'));
connect(SOCK, $paddr);
$line=<SOCK>;
send (SOCK, "$chIP\n",0);
$line=<SOCK>;
close(SOCK);
return $line;
}
1;
...но хотелось б иметь всё-таки один файл. Как это можно сделать?