Stories
Slash Boxes
Comments
NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.

All the Perl that's Practical to Extract and Report

The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
 Full
 Abbreviated
 Hidden
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.
      --
      rjbs