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