Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ strict(3) — IRIX 6.5.3f

Media Vault

Software Library

Restoration Projects

Artifacts Sought



strict(3)                                                            strict(3)



NAME
     strict - Perl pragma to restrict unsafe constructs

SYNOPSIS
         use strict;

         use strict "vars";
         use strict "refs";
         use strict "subs";

         use strict;
         no strict "vars";


DESCRIPTION
     If no import list is supplied, all possible restrictions are assumed.
     (This is the safest mode to operate in, but is sometimes too strict for
     casual programming.)  Currently, there are three possible things to be
     strict about:  "subs", "vars", and "refs".

     strict refs
           This generates a runtime error if you use symbolic references (see
           the perlref manpage).

               use strict 'refs';
               $ref = \$foo;
               print $$ref;        # ok
               $ref = "foo";
               print $$ref;        # runtime error; normally ok


     strict vars
           This generates a compile-time error if you access a variable that
           wasn't localized via my() or wasn't fully qualified.  Because this
           is to avoid variable suicide problems and subtle dynamic scoping
           issues, a merely local() variable isn't good enough.  See the my
           entry in the perlfunc manpage and the local entry in the perlfunc
           manpage.

               use strict 'vars';
               $X::foo = 1;         # ok, fully qualified
               my $foo = 10;        # ok, my() var
               local $foo = 9;      # blows up

           The local() generated a compile-time error because you just touched
           a global name without fully qualifying it.

     strict subs
           This disables the poetry optimization, generating a compile-time
           error if you try to use a bareword identifier that's not a
           subroutine, unless it appears in curly braces or on the left hand
           side of the "=>" symbol.



                                                                        Page 1





strict(3)                                                            strict(3)



               use strict 'subs';
               $SIG{PIPE} = Plumber;       # blows up
               $SIG{PIPE} = "Plumber";     # just fine: bareword in curlies always ok
               $SIG{PIPE} = \&Plumber;     # preferred form


     See the section on Pragmatic Modules in the perlmod manpage.
















































                                                                        Page 2



Typewritten Software • bear@typewritten.org • Edmonds, WA 98026