将Perl的文件输入角度运算符作为通用迭代器/生成器进行重载是否合适?

前端之家收集整理的这篇文章主要介绍了将Perl的文件输入角度运算符作为通用迭代器/生成器进行重载是否合适?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我已经看到了几个模块(例如: Iterator::Simple),它们使用Perl的角度运算符作为Python生成器的近似等价物.具体来说,提供迭代值列表而不实际将整个列表加载到内存中的能力.这通常被认为是操作符功能的适当扩展,还是被认为是滥用它?

解决方法

< HANDLE> operator只是readline HANDLE函数的语法糖,它是句柄上的迭代器.如果一个对象提供迭代访问,我没有看到重载的任何问题<>为最终用户提供灵活性.

<>运算符不接近发电机,模块就是这样做的.这一切

while (<$iterator>) {...}

给你一个奇特的写作方式

while (defined ($_ = $iterator->next)) {...}

Perl是一种非常富有表现力的语言,因为它可以通过许多不同的方式解决问题.许多模块选择以这种精神提供替代接口.这允许用户编写最适合他们的方式.

猜你在找的Perl相关文章