【发布时间】:2014-04-13 18:37:59
【问题描述】:
我正在为 VoIP 软件 Freeswitch 编写脚本。该脚本将作为实例运行,以侦听到套接字的入站消息。
我使用 Freeswitch 提供的示例脚本开始,一切正常。
但是,有一点让我失望。
use IO::Socket::INET;
use warnings;
use strict;
my $sock = new IO::Socket::INET ( LocalHost => '127.0.0.1', LocalPort => '8060', Proto => 'tcp', Listen => 1, Reuse => 1 );
die "Could not create socket: $!\n" unless $sock;
for(;;) {
my $new_sock = $sock->accept();
my $pid = fork();
if ($pid) {
close($new_sock);
next;
}
close($new_sock);
}
;; 到底是什么意思?它是在创建套接字时定义的特殊运算符吗?努力寻找文档!
【问题讨论】:
-
它只是意味着永远循环。
-
for (;;) { ... },while () { ... }和 ,while (1) { ... }编译成一个“无限”循环。另一方面,{ ... }编译成只执行一次的循环。您可以在这些循环中使用next、last和redo(甚至是{ ... }),就像所有其他循环一样。 -
Syntax::Feature::Loop 添加
loop { ... },其作用相同。
标签: perl freeswitch