in reply to Using strict with globals

You point out an interesting aspect of strict & vars I didn't realize:

. . . one of the finest benefits of strict is lost: prevention of typos.

#!/usr/bin/perl use strict; $main::foo = 'bar'; $main::baz = 'qux'; $main::foo .= $main::bza;
I hate to nitpick, but your next sentence:

The vars pragma will catch this:

Did you mean strict will catch this? Apologies if I'm mistaken (since I don't know much about vars), if I'm wrong could you expand on that point, as I feel I need to understand why.

Good post!

--Jim

Update: Ah yes, the synergy of the two makes more sense. Thanks, Ovid.

Replies are listed 'Best First'.
(Ovid) Re: Re: Using strict with globals
by Ovid (Cardinal) on Jan 04, 2002 at 02:44 UTC

    Nitpick away! I don't mind at all :) I should have said Using strict and vars together will catch this.

    As for the vars pragma, it merely allows you to use globals in your program without the need to specify the current package name. Thus, strict catches errors in global misspellings that it wouldn't catch if you use fully-qualified variable names -- e.g. $main::foo can be misspelled as $main::Foo and strict doesn't care one bit, though you may have trouble finding the error in your code.

    Further elaboration on nitpicking. I've said it before and I'll say it again: let me know when I'm being a moron! I'm a PerlSaint in name only. I often wind up with weird conceptual blocks, or sometimes make downright stupid mistakes (like reposting nodes - grr!!!), so I want to hear the nitpicking. Like most everyone else here, I want to learn, and learn, and learn...

    Cheers,
    Ovid

    Join the Perlmonks Setiathome Group or just click on the the link and check out our stats.