The pain of writing code to support the pragma may well be more than the pain saved by the compile time checking.

Oh, I would agree with that. I personally would not use said pragmas. Then again, I don't even always use strict (though I do use it in include files and in large, complex programs, and I would certainly use it in a module). However, there are some people whose mindset just tends to prefer a lot of strict rules. People who prefer Pascal over BASIC, if you can imagine. People who use strict and warnings even for one-liners and obfuscations. Those people would probably appreciate the ability to force all subs to be predefined, for example. Of course, if they really want it, one of them would have to step forward and implement it, but what I was saying is that if it's done as a pragma, we needn't object, because all you have to do to be free of it is not bother to use the pragma.

That said, I'm not sure what the bondage pragma would do. Perhaps require all control structures to have a single entry and a single exit point (so, no next or last permitted, to say nothing of early returns), I suppose. I imagine the discipline pragma might prohibit subroutines from accessing any variables not lexically scoped within the subroutine, so that any external variables would have to be passed in as arguments to be used, and if they were to be changed the results would have to be passed back out as a return value and applied by the calling code. I'm not sure what use pain would do, exactly, but I suppose it would be even worse than discipline.

The really neat thing about these pragmas, if they existed, would be that we could say, "C gives you enough rope to hang yourself, but Perl gives you enough rope to tie yourself up."


$;=sub{$/};@;=map{my($a,$b)=($_,$;);$;=sub{$a.$b->()}} split//,".rekcah lreP rehtona tsuJ";$\=$ ;->();print$/

In reply to Re: When -w and use strict aren't enough... by jonadab
in thread When -w and use strict aren't enough... by RMGir

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.