[ILUG] Silly perl question

Braun Brelin bbrelin at gmail.com
Thu Aug 28 11:10:08 IST 2008


Doesn't use strict require that all variables be declared before they are
used regardless of whether they're global or local?

Braun


On Thu, Aug 28, 2008 at 11:06 AM, Jimmy O'Regan <joregan at gmail.com> wrote:

> 2008/8/28 Braun Brelin <bbrelin at gmail.com>:
> > Hello all,
> >
> > I have a silly Perl question.  I'm running an Ubuntu Linux system (8.04),
> > with Perl 5.8.8.
> >
> > However, the 'use strict' pragma seems not to be working.  I.e. I have
> the
> > following
> > Perl script:
> >
> > #!/usr/bin/perl
> >
> > use strict;
> >
> > $a=10;
> >
> > print "a = ",$a,"\n";
> >
> > This should fail miserably with an error about not having $a declared,
> but,
> > unfortunately, it doesn't.  It just prints '10'.
> >
> > This isn't my normal machine so I'm not sure how Perl was built, although
> I
> > suspect
> > that it isn't anything more than a standard install.  perl -V didn't
> really
> > give me any clues.  Anything stupidly obvious that I'm missing?
>
> You've declared it as a global variable; 'my' is used to declare a
> local variable
>
> #!/usr/bin/perl
>
> use warnings;
> use strict;
>
> foo();
>
> sub foo
> {
>        $a=10;
>
>        print "a = ",$a,"\n";
> }
> print $a;
>
> gives:
> a = 10
> 10
> --
> Irish Linux Users' Group mailing list
> About this list : http://mail.linux.ie/mailman/listinfo/ilug
> Who we are : http://www.linux.ie/
> Where we are : http://www.linux.ie/map/
>



More information about the ILUG mailing list