Slash Boxes

All the Perl that's Practical to Extract and Report

More | Login | Reply
Loading... please wait.
  • OK, so you take a coderef...

    Now how do we tell that it's an iterator coderef? How do we know that this coderef that the user invented to satisfy your API actually works?

    Because that's yet another type of bug, one that's probably even harder to find again.

    Oh, and as for your tell and seek, there's a role for that already, called IO::Seekable. IO::Handle on it's own DOESN'T assume that the filehandle is seekable, it may well be a stream.

    So something like IO::File responds to both ->isa('IO::Handle') and -
    • by rjbs (4671) on 2006.04.06 13:37 (#47006) Homepage Journal
      We don't know that it works, but the user knows that it will be called. That's what I'm concerned with. It provides one simple test: if the passed value is callable, it gets called. Whether it has bugs is your problem.

      That's a big improvement from "if our undisclosed criterion for being a filehandle passes, we will diamond your value." Even if they disclose their method (which would be unusual) it means you have to know what it is. Callability is a solved problem, as I see it.