perl编译时间和运行时间
问题描述:
我正在阅读this文档以了解Perl程序的生命周期。perl编译时间和运行时间
我无法弄清楚当RUN时间和时COMPILE时间这样的活动在命令行上运行的Perl脚本而发生:
perl my_script.pl
答
perl script.pl
将编译script.pl
然后执行script.pl
。同样,require Module;
将编译Module.pm
,然后执行Module.pm
。
如果编译器遇到一个BEGIN
块,它将在块编译后立即执行该块。请记住,use
是一个BEGIN
块,由require
和可能的import
组成。
例如,
# script.pl
use Foo;
my $foo = Foo->new();
$foo->do();
是否:
- 编译
script.pl
- 编译
use Foo;
- 执行
require Foo;
- 编译
Foo.pm
- ...
- 执行
Foo.pm
- ...
- 编译
- 执行
import Foo;
- 编译
my $foo = Foo->new();
- 编译
$foo->do();
- 编译
- 执行
script.pl
- 执行
my $foo = Foo->new();
- 执行
$foo->do();
- 执行
你有一个实际的问题,我们可以帮助? – ysth
考虑一个例子,假设我在package/module.pm中有一个包。我在我的perl脚本'my_script.pl'中调用了这个模块的'foo()'函数。现在,如果我在** COMPILE **和** RUN **事件发生时运行此脚本'perl my_script.pl', –
perl中没有编译步骤,它是一种解释型语言。解释器在运行时直接解析并运行您的Perl代码。 [http://en.wikipedia.org/wiki/Interpreter_(computing)](http://en.wikipedia.org/wiki/Interpreter_%28computing%29) –