Итак, у меня возникла эта проблема при цикле через сокет с циклом while.
Когда я использую это, оно полностью работает нормально, но на каждом $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, цикл завершается только тогда, когда я отключаю клиента (что я понимаю почему).
Я предполагаю, что 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;
}
Итак, мой вопрос: как я могу перебрать сокет (перевод строки завершен), не добавляя в сообщения символы новой строки?
Спасибо большое!