我正在通过UNIX套接字与服务器通信。服务器用空行终止通信(" \ n")。我的客户端程序如下所示:
while (my $result = <$sock>) {
print $result;
last unless (chomp $result);
}
close $sock;
但我似乎永远不会离开while循环。我必须按Ctrl-C才能离开。为什么会这样,我该如何解决?
答案 0 :(得分:1)
chomp返回已删除的字符总数,因此如果该行包含换行符,则始终为true值。 使用像
这样的东西 last if ($result =~ /^\n$/);