3
所以我有一個while循環通過套接字循環時遇到這個問題。使用chomp時打印失敗()
當我使用這個,它完全正常工作,但我有每個$message
,我不想要的換行符。
my $socket = new IO::Socket::INET (
LocalHost => "127.0.0.1",
LocalPort => "12345",
Proto => 'tcp',
Listen => 1,
Reuse => 1
);
my $client = $socket->accept();
while(<$client>) {
my $message = $_;
print $message;
}
但是,當我加入格格循環只完成了,當我拔下客戶端(我知道爲什麼)。 我的猜測是,chomp從$_
變量中刪除換行符,因此循環將不再工作。
my $socket = new IO::Socket::INET (
LocalHost => "127.0.0.1",
LocalPort => "12345",
Proto => 'tcp',
Listen => 1,
Reuse => 1
);
my $client = $socket->accept();
while(<$client>) {
my $message = $_;
chomp($message);
print $message;
}
所以我的問題是:我如何遍歷插座(新行終止),而無需在消息中的新行?
非常感謝!
好吧,所以我發現是當我打印$消息。「\ n」;它的工作原理是 。 它與此有關嗎? –
感謝您的答案,您的解決方案工作。我想知道現在,它會與其他循環一起進行處理嗎? –
@JamieFlowers當你打印某些東西時,它會被髮送到shell中的打印緩衝區。直到出現換行符時纔會實際打印此緩衝區。這不是一個真正的錯誤,只是一個延遲。 – TLP