Оператор <HANDLE>
является просто синтаксическим сахаром для функции readline HANDLE
, которая во многом является итератором над дескриптором. Если объект обеспечивает итеративный доступ, я не вижу проблем с перегрузкой <>
для обеспечения гибкости для конечного пользователя.
Оператор <>
не приближает генератор, модуль делает это. Все это
while (<$iterator>) {...}
дает вам причудливый способ написать
while (defined ($_ = $iterator->next)) {...}
Perl является очень выразительным языком благодаря множеству различных способов, которыми он позволяет решать проблемы. Многие модули предпочитают предлагать альтернативные интерфейсы в этом духе. Это позволяет пользователям кодировать наиболее подходящий для них способ.