В этом случае значение 0Е0 используется в числовом контексте и поэтому рассматривается как число байтов, равное нулю. Операция записи пропускается, и через некоторое время предпринимается еще одна попытка чтения из объекта сеанса.
Разнообразие игр и приложений для Андроид зачастую приводят пользователя к вопросу, а где же можно в одном месте найти все лучшие игры. И такое место это сайт fast-android.net. Можно сказать что там собраны воедино самые интересные игры и приложения, которое достаточно скачать бесплатно и наслаждаться сюжетом.
Метод IO::SessionData->write () имеет такой же синтаксис, как и метод IO::Socket->write (). Он отправляет максимально возможный объем данных и буферизует данные, оставшиеся от неполной записи. Остальные данные, поставленные в очередь, будут записаны автоматически при последующих вызовах метода wait ().
В случае успешного выполнения метод write () возвращает число записанныхl байтов; если операция была бы заблокирована — значение 0Е0; а в случае ошибки значение undef. Поскольку подавляющее большинство ошибок ввода-вывода, возникающих во время операций записи, не может быть исправлено, при обнаружении ошибки метод write () также автоматически закрывает объект IO::SessionData и удаляет его из набора сеансов. Чтобы изменить это правило поведения, можно создать подкласс класса IO::SessionData и перекрыть метод, выполняющий указанное действие. Для определения того, какая именно возникла ошибка, проверяется значение переменной $!.
Если во время вызова метода close () объекта сеанса в нем буферизированы исходящие данные, выполнение этого метода будет отложено. При последующих вызовах метода wait() будут предприняты попытки отправить оставшиеся данные, которые поставлены в очередь в объекте SessionData, и сокет будет закрыт только после того, как передающий буфер будет пуст. Однако даже если в объекте сеанса остались буферизованные данные, метод close () немедленно удаляет сеанс из набора сеансов IO::SessionSet с тем, чтобы этот объект больше не возвращал результатов.