I'm with
perrin on this one. Having used BindLex on a project before, I think it makes using globals waaaay too easy. The problem is that the stash (and flash) are global variable repositories. They're useful, otherwise
mst would've killed
nothingmuch before he could've finished adding it. But, they're useful in the way that a Doberman is useful. You just don't let the Doberman have the run of the place. Stashed variables should be very obviously stashed variables. The easiest way to do this is to have the stashed variable be accessible only through the long function call. The point behind a lexical is that it's
safe - whatever you throw into it won't leave the current scope. BindLex violates that guarantee.
I think this falls under the "rope enough to hang yourself with" part of Perl. But, I'm also crochety. Meh.
My criteria for good software:
- Does it work?
- Can someone else come in, make a change, and be reasonably certain no bugs were introduced?