strict

Pragma for doing strict error checking within the current block. Can be turned off by prefixing with no:

use strict 'vars'; 
... 
no strict 'vars';

Provides three kinds of restriction:

strict 'refs'

Generates runtime error if you use any symbolic references.

strict 'subs'

Generates compile-time error if you use a bareword identifier that’s not a predeclared subroutine.

strict 'vars'

Generates compile-time error if you access a variable that wasn’t declared via my, isn’t fully qualified, or wasn’t imported.

use strict by itself (with no import list) is the most restrictive, causing all possible restrictions to be imposed.

Get Perl in a Nutshell, 2nd Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.