以perl编译时间和运行时间

Kri*_*rma 5 perl runtime compile-time

我正在阅读文档以了解Perl程序的生命周期.

在命令行上运行perl脚本时,我无法弄清楚RUN时间和COMPILE时间事件发生的时间如下:

perl my_script.pl
Run Code Online (Sandbox Code Playgroud)

ike*_*ami 15

perl script.pl将编译script.pl然后执行script.pl.同样,require Module;将编译Module.pm然后执行Module.pm.

如果编译器遇到BEGIN块,它将在块编译后立即执行块.请记住,这use是一个BEGIN由a require和a 组成的块import.

例如,

# script.pl
use Foo;
my $foo = Foo->new();
$foo->do();
Run Code Online (Sandbox Code Playgroud)

请问:

  1. script.pl
    1. use Foo;
    2. 执行 require Foo;
      1. Foo.pm
        1. ...
      2. 执行 Foo.pm
        1. ...
    3. 执行 import Foo;
    4. my $foo = Foo->new();
    5. $foo->do();
  2. 执行 script.pl
    1. 执行 my $foo = Foo->new();
    2. 执行 $foo->do();