To be perfectly honest, my first thought when I saw
IO::All is that it is a solution in search of a
problem. Maybe I'm just missing something, but it
seems rather pointless to me, a needless exercise in
wheel-reinventing on a grandscale with no benefit.
Maybe this is because I'm comfortable with the way
Perl does IO already, for the most part, or maybe I
just don't think the same way as the guy who did
IO::All, but in any case I just don't see the value.
Regarding API design, I agree with EvdB's
comment,
"Can I remember how to use this
after a week and in a hurry without the docs?".
My favourite example of a module that gets this
pretty-much right, IMO, is DateTime,
which I can almost use in my sleep. (There are
some modules that are even easier to remember how
to use, such as Data::Dumper, but
what DateTime does is sufficiently complex
that one might expect a more difficult API.
;$;=sub{$/};@;=map{my($a,$b)=($_,$;);$;=sub{$a.$b->()}}
split//,".rekcah lreP rehtona tsuJ";$\=$;[-1]->();print