strict man page on MirBSD

Man page or keyword search:  
man Server   6113 pages
apropos Keyword Search (all sections)
Output format
MirBSD logo
[printable version]



strict(3p)	Perl Programmers Reference Guide       strict(3p)

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 perlref).

	       use strict 'refs';
	       $ref = \$foo;
	       print $$ref;	   # ok
	       $ref = "foo";
	       print $$ref;	   # runtime error; normally ok
	       $file = "STDOUT";
	       print $file "Hi!";  # error; note: no comma after $file

	   There is one exception to this rule:

	       $bar = \&{'foo'};
	       &$bar;

	   is allowed so that "goto &$AUTOLOAD" would not break
	   under stricture.

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

perl v5.8.8		   2005-02-05				1

strict(3p)	Perl Programmers Reference Guide       strict(3p)

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

	       package Cinna;
	       our $bar;		   # Declares $bar in current package
	       $bar = 'HgS';		   # ok, global declared via pragma

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

	   Because of their special use by sort(), the variables
	   $a and $b are exempted from this check.

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

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

     See "Pragmatic Modules" in perlmodlib.

HISTORY
     "strict 'subs'", with Perl 5.6.1, erroneously permitted to
     use an unquoted compound identifier (e.g. "Foo::Bar") as a
     hash key (before "=>" or inside curlies), but without forc-
     ing it always to a literal string.

     Starting with Perl 5.8.1 strict is strict about its restric-
     tions: if unknown restrictions are used, the strict pragma
     will abort with

	 Unknown 'strict' tag(s) '...'

perl v5.8.8		   2005-02-05				2

[top]

List of man pages available for MirBSD

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net