Beefy Boxes and Bandwidth Generously Provided by pair Networks
good chemistry is complicated,
and a little bit messy -LW
 
PerlMonks  

Re: When -w and use strict aren't enough...

by tilly (Archbishop)
on Nov 04, 2003 at 22:19 UTC ( #304554=note: print w/ replies, xml ) Need Help??


in reply to When -w and use strict aren't enough...

There is a way to do what you want, but you probably don't want to do it. Here goes:

my $handleNewYear = sub { # do something really useful }; # ... lotsa logic... if (1==$mday && 1==$month) { $handelNewYear->(); }
All that I have done is stored the subroutine in a variable. Do that with all of your subroutines and all of your typos in subroutines become typos in variable names which strict.pm catches.

You may note that I also reversed the order of your == comparisons. The reason for doing that is so that if you type = instead of == some day, Perl will complain because you can't assign to a constant. This is a useful habit in many C-like languages.


Comment on Re: When -w and use strict aren't enough...
Download Code
Re: Re: When -w and use strict aren't enough...
by greenFox (Vicar) on Nov 07, 2003 at 15:17 UTC
    I read this thread earlier today and I have to admit that I skimmed over the bit about == comparisons and then just now I was reading about the back door attempt on the Linux kernel and way down there in the comments (sorry I can't see a way to link directly to it) are two comments by "legobuff" and "Mr_Z" on the exact same topic. A real world example how a simple change in coding practice can potentially make a profound difference (presuming of course some-one writes the auditing tools). ++tilly its a good meme to spread.

    --
    Do not seek to follow in the footsteps of the wise. Seek what they sought. -Basho

Re^2: When -w and use strict aren't enough...
by andyford (Curate) on Jun 15, 2006 at 21:56 UTC
    This intrigues me.
    but
    Why do you say "Probably don't want to..."?
    because
    "it's too much work"?
    or because
    "it's dangerous/bad/ugly"?
      Don't know, but one downside (upside?) is that your functions are no longer accessible from outside the package. That can easily be fixed by doing one of the following for exportable functions:
      *handleNewYear = my $handleNewYear = sub { # do something really useful };
      sub handleNewYear { # do something really useful } my $handleNewYear = \&handleNewYear;
      Because it is ugly. And will be sure to generate negative comments from any maintainance programmer. And cannot be mixed with OO techniques.

      Other than that, it is a veru good idea. But its goodness is simply not worth the arguments that you're bound to generate.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://304554]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others pondering the Monastery: (5)
As of 2014-12-19 01:56 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    Is guessing a good strategy for surviving in the IT business?





    Results (70 votes), past polls