在 IO::CatHandle 中§
有关 方法 next-handle,请参见 上下文中的主要文档
method next-handle(IO::CatHandle: --> IO::Handle)
将活动源句柄切换到源句柄队列中的下一个句柄,该队列是 .new
中 @handles
属性中给出的源。返回值是当前活动的源句柄,或者如果源句柄队列已用尽,则为 Nil
。
将 Cool
源“句柄”强制转换为 IO::Path
;打开 IO::Path
和未打开的 IO::Handle
源句柄,以使用调用者的 $.nl-in
、$.chomp
和 $.encoding
属性进行读取;已经打开的 IO::Handle
对象的那些相同属性将更改为调用者属性的值。
每当 CatHandle 的方法需要切换到下一个源句柄时,此方法都会自动调用,触发 .on-switch
Callable
被调用,并且在 .new 调用期间调用一次。.on-switch
将在每次调用此方法时继续触发,即使在源句柄队列已用尽之后也是如此。请注意,通常达到当前活动源句柄的 EOF 不会触发 .next-handle
调用,而是需要更多数据的进一步读取操作会触发。
(my = 'foo'.IO).spurt: "a\nb";(my = 'bar'.IO).spurt: "c\nd";with IO::CatHandle.new: :on-switch, ,