strict

use strictを使うことで、厳密な文法チェックをし、場合によってはエラーを出す。

strict - 文法チェックを厳しくする - Perlプログラミング入門ゼミ - Perlでテキスト処理・Linuxサーバー管理・Webシステム開発
厳密な構文チェック - プログラムの基本構成 - Perl入門

たとえば、

#!/usr/bin/perl

# 変数が宣言されていない.
$var1 = 10;
print '$var1 = '."$var1\n";

myやourなどで、変数宣言されてない。

[bg1@dti-vps-srv93 strict]$ vi strict.pl
[bg1@dti-vps-srv93 strict]$ perl strict.pl
$var1 = 10
[bg1@dti-vps-srv93 strict]$

これでも実行はできるが、厳密に文法をチェックして、これをエラーにすることで、コードの質を高めたい。
そういう場合は、

#!/usr/bin/perl

use strict; # 厳密な文法チェック.

# 変数が宣言されていない.
$var1 = 10;
print '$var1 = '."$var1\n";

こうすると、

[bg1@dti-vps-srv93 strict]$ vi strict.pl
[bg1@dti-vps-srv93 strict]$ perl strict.pl
Global symbol "$var1" requires explicit package name at strict.pl line 6.
Global symbol "$var1" requires explicit package name at strict.pl line 7.
Execution of strict.pl aborted due to compilation errors.
[bg1@dti-vps-srv93 strict]$

変数宣言されていないということで、エラーになる。

myで宣言をすれば、

[bg1@dti-vps-srv93 strict]$ vi strict.pl
[bg1@dti-vps-srv93 strict]$ perl strict.pl
$var1 = 10
[bg1@dti-vps-srv93 strict]$

エラーは出ず、実行できる。

ちなみに、warningsやstrictをuseで指定するのは、

[bg1@dti-vps-srv93 strict]$ ls /usr/share/perl5/
AnyDBM_File.pm  DBM_Filter     Getopt      Net             Text           bigint.pm       filetest.pm     sort.pm
App             DBM_Filter.pm  HTTP        Perl            Thread         bignum.pm       if.pm           strict.pm
Archive         Devel          I18N        PerlIO          Thread.pm      bigrat.pm       integer.pm      subs.pm
Attribute       DirHandle.pm   IO          PerlIO.pm       Tie            blib.pm         less.pm         unicore
AutoLoader.pm   Dumpvalue.pm   IPC         Pod             Time           bytes.pm        locale.pm       utf8.pm
AutoSplit.pm    Encode         JSON        Safe.pm         UNIVERSAL.pm   bytes_heavy.pl  open.pm         utf8_heavy.pl
B               English.pm     Locale      Search          Unicode        charnames.pm    overload        vars.pm
Benchmark.pm    ExtUtils       Log         SelectSaver.pm  User           deprecate.pm    overload.pm     vendor_perl
CORE.pod        File           Math        SelfLoader.pm   Version        diagnostics.pm  overloading.pm  vmsish.pm
Class           FileCache.pm   Memoize     Symbol.pm       XSLoader.pm    dumpvar.pl      perl5db.pl      warnings
Compress        FileHandle.pm  Memoize.pm  Term            _charnames.pm  encoding        perlfaq.pm      warnings.pm
Config          Filter         Module      Test            autouse.pm     feature.pm      pod
DB.pm           FindBin.pm     NEXT.pm     Test.pm         base.pm        fields.pm       sigtrap.pm
[bg1@dti-vps-srv93 strict]$

これらが特別な機能ではなく、モジュールだから。

Sample/perl/strict/strict/src/strict at master · bg1bgst333/Sample · GitHub