以perl编译时间和运行时间

时间:2013-02-08 06:23:31

标签: perl runtime compile-time

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

RUN 时间以及在命令行上运行perl脚本时出现 COMPILE 时间事件时,我无法确定:

perl my_script.pl

1 个答案:

答案 0 :(得分:15)

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

如果编译器遇到BEGIN块,它将在块编译后立即执行块。请注意,use是一个BEGIN块,其中包含requireimport

例如,

# script.pl
use Foo;
my $foo = Foo->new();
$foo->do();

的作用:

  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();