Slash Boxes
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.
More | Login | Reply
Loading... please wait.
  • One reason why RHN-the-lesser raises the hackles of many a Perl hacker is because we already have RHN built into the language.

    At the heart of it all, Perl has only five types that matter: scalars, arrays, hashes, filehandles and coderefs. (Yes, I skipped two. If you know what they are, you know why I skipped them. ;-) Yes, there are tied variables, but what matters about them is not how their internals differ, but how they automagically hide those internals. And objects are another kettle of fish, but

    • The sigil is only half the battle. Joel's article has a great example of pulling in unsafe data from a Web form. Perl's taint mode aside, we can't always know when it's safe to use a variable. When I was coding CGI apps, I did something like this:

      my $_name = $cgi->param('name'); my ($name) = $_name =~ /($untainting_regex)/;

      In this case, the sigil tells me nothing about whether or not it's safe to use that variable. If everything untaints, I can shove that data in the database. If it doesn't, I have the original data to encode and throw back onto the Web form. That convention of the leading underscore made it trivial for me to see that $sth->execute($_name); was an error. The sigil won't.

      • Crud, I hit 'Submit' instead of 'Preview'. Damn. Someone needs to read The Design of Everyday Things []. (Including me, to be fair.)

      • In this case, the sigil tells me nothing about whether or not it's safe to use that variable.

        Right. Because Perl embeds RHN-the-lesser (the kind of stuff in Petzold's book and the Windows API). The entire point of RHN-as-intended is to use common prefixes and principles of composition to describe the meaning of a variable: taintedness, Primality, object behavior, worksafe content, etc.

        The one huge problem with "Reverse Hungarian Notation", as Joel says, is that virtually everyone thinks RHN is RH