Здравствуйте.
есть такой кусок кода:
#!/usr/bin/perl
#use strict;
use IO::Socket;
use Digest::MD5 qw(md5_hex);
use Config::IniFiles;
$|=1;
conn();
sub conn
{
my $host = '127.0.0.1';
my $port = '12345';
print "Connecting to: $host:$port\n";
my $r = IO::Socket::INET->new ( Proto => "tcp",
PeerAddr => $host,
PeerPort => $port ) || die "can`t сonnect";
out('test'); # тут ругается, мол Can't use an undefined value as a symbol reference at ./client.pl line 35.
my $test = get(); # и тут
}
sub out
{
print $r $_[0]."\n"; # !!!! line 35
print '>>SEND: '.$_[0]."\n";
}
sub get
{
my $line = <$r>;
chomp($line);
$line =~ s/\r//;
$line =~ s/\n//;
print '<<RECV: '.$line."\n";
return $line;
}
на склолько я понимаю в sub`е не вдино переменной (видемо ссылки на дескриптор).
создовать socket в sub`е обязательно, так как это мозже будет модуклем.
пробовал передовать $r в процедуры как аргумент - не помогло.
как решить/обойти эту проблемму?
Сбасибо всем, кто откликнется