Documentation for method next-handle
Documentation for method next-handle, assembled from the following types:
method next-handle(IO::CatHandle: --> IO::Handle)
Switches the active source handle to the next handle in the source handle queue, which is the sources given in
@handles attribute to
.new. The return value is the currently active source handle or
Nil if the source handle queue has been exhausted.
Coerces Cool source "handles" to IO::Path; opens IO::Path and unopened IO::Handle source handles for reading using the invocant's
$.encoding attributes; those same attributes of already-opened IO::Handle objects will be changed to the values of the invocant's attributes.
This method is called automatically whenever CatHandle's methods require a switch to the next source handle, triggers
.on-switch Callable to be called, and is called once during .new call. The
.on-switch will continue to be triggered each time this method is called, even after the source handle queue has been exhausted. Note that generally reaching the EOF of the currently active source handle does not trigger the
.next-handle call, but rather further read operations that need more data do.
(my = 'foo'.IO).spurt: "a\nb";(my = 'bar'.IO).spurt: "c\nd";with IO::CatHandle.new: :on-switch, ,