Личный кабинет    
Назад К началу Вперед Карта сайта Телефонные коды стран и городов Мира Анализатор тарифов Служб IP-Телефонии и Рейтинг

Разделы
Введение
Литература
Операторы
Оборудование
Анализатор
Сотрудничество
Печать карт
Новости
Опросник
Коды
Справка
Работа
Каталог
Хостинг
Личный кабинет

Реклама

Perl для IP-Телефонии (36 – Неблокирующий ввод-вывод, часть 11)

предыдущая часть ««»» следующая часть

Как было описано прежде, в числовом контексте строка 0Е0 рассматривается как числовое значение 0 (считается, что эта строка представляет число с плавающей точкой 0.0Е0). Однако в логическом контексте 0Е0 имеет истинное значение, этот код результата можно интерпретировать как имеющий смысл — “нулевой, но истинный”. Иными словами, он означает следующее: “ошибок нет, но повторите попытку позднее”.

Кроме метода getline (), можно вызвать любой другой метод объекта дескриптора файла, заключенного в оболочку. Метод IO::Getline просто передает вызов метода основополагающему объекту. Это позволяет непосредственно вызывать такие методы объекта IO::Getline, как sysread () и close().

Применение модуля IO::Getline

Модуль IO::Getline используется в сочетании с функцией select(). Поскольку он никогда не блокируется, его нельзя применять просто для непосредственной замены оператора <>.

Чтобы продемонстрировать область применения этого модуля, в листинге приведена небольшая программа, в которой объект IO::Getline используется в сочетании с методом select () для построчного чтения из дескриптора STDIN. Загружаются модули IO::Getline и IO::Select и создается набор дескрипторов IO:: Select, содержащий дескриптор файла STDIN. Затем вызывается метод IO::Getline->new () для создания нового неблокирующего объекта IO::Getline, который является оболочкой для STDIN.

После этого программа входит в цикл select (). При каждом проходе по циклу вызывается метод can_read() объекта IO::Select, который возвращает истинное значение, если дескриптор STDIN содержит данные, доступные для чтения.

0:    #!/usr/local/bin/perl -w
1:    # Файл: cat.pl
2:    use strict;
3:      use IO::Getline;
4:    use IO::Sdlect;
5:    my    $s    = 10::Select->new(*STDIN);
6:    my    $stdin    = 10::Getline->new(*STDIN);
7:    my    $data;
8:    while ($sr>can_read) {
9:    my $rc = $stdin->getline ($data) or last;'
10:    print $data if $rc > 0;
11:    }
12:    I die "Read error::$stdin->error if $stdin->error;


2014-08-01 13:00:20

это интересно
Давно не секрет, что главной визитной карточкой компании в сети Интернет является сайт. Создание и продвижение сайтов в Твери можно выполнить воспользовавшись источником idea-style.ru. Именно здесь Вам будет предложен оригинальный дизайн, креативные идеи и различные функциональные возможности для вашего проекта.

предыдущая часть ««»» следующая часть


ДОКУМЕНТАЦИЯ VoIP


НОВОСТИ СВЯЗИ


РЕКОМЕНДУЕМ

 
[ стандарты | обзор | оборудование | анализатор | коды | новости | карта | партнерам | Мы ВКонтаке ]
Запрещается копировать материалы сайта без уведомления авторов.
С вопросами и предложениями обращайтесь со страницы контактов
Copyright c 1999-2024 IPTop.Net
 
IP-Телефония, Интернет Телефония, Компьютерная телефония