require

requireも、モジュールを読み込むのだが、useがコンパイル時評価及び初期化処理も含むのに対し、requireは実行時評価で初期化処理は行われない。そのため、外部に公開されている関数を認識できず、ただの文字列リテラルとして認識してしまう。

require - モジュールを実行時に読み込む - Perl入門ゼミ

前回のuseで使ったプログラムを、requireに替えてみる。

実行すると、

$ vi require.pl
$ perl require.pl
getcwd
$

初期化されていないと、getcwdを関数として認識せず、文字列リテラルとして認識するのでこうなる。

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