Provides three kinds of restriction:use strict 'vars'; ... no strict 'vars';
Generates runtime error if you use any symbolic references.
Generates compile-time error if you use a bareword identifier that's not a predeclared subroutine.
Generates compile-time error if you access a variable that wasn't
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.