perl中的套接字数组

ley*_*kan 4 sockets arrays perl

我想在perl中做一个socket数组并添加一个\n,在每个socket的末尾,我尝试&socket[0]但它不起作用.

my @socket1;
$socket1[0] = IO::Socket::INET->new(
    Type     => SOCK_STREAM,
    PeerAddr => "127.0.0.1",
    Proto    => "tcp",
    PeerPort => $dbase_param{camera_stream}
) or die "Cannot open socket on port " . $dbase_param{camera_stream} . ".\n";

print $socket1[0] "\n";
Run Code Online (Sandbox Code Playgroud)

当我这样做print $socket1[0] "\n";它不会编译.

但如果我不使用数组,它的工作原理如下:

my $socket1;
$socket1 = IO::Socket::INET->new(
    Type     => SOCK_STREAM,
    PeerAddr => "127.0.0.1",
    Proto    => "tcp",
    PeerPort => $dbase_param{camera_stream}
) or die "Cannot open socket on port " . $dbase_param{camera_stream} . ".\n";

print $socket1 "\n";
Run Code Online (Sandbox Code Playgroud)

Jim*_*vis 5

print文件句柄需要是一个glob或一个简单的标量(可能是一个BLOCK的结果).这应该工作:

print { $socket1[1] } "\n";
Run Code Online (Sandbox Code Playgroud)


AnF*_*nFi 5

请尝试以下语法:

$socket1[0]->print("\n");
Run Code Online (Sandbox Code Playgroud)