关于perl中BEGIN和END的使用

关于perlBEGINEND的使用

 

Perl语言学习者必须关注很强实用性。

有些时候我们需要在perl业务代码开始执行之前做一些初始化工作,或者在结束的时候做一些收尾的工作,perl提供了这样的块BEGINEND帮助perl程序员实现这些操作。

下面我先看一个简单的例子做为BEGINEND功能的解释:

 

0.#! use/bin/perl

1.print “pid = $$/n”;

2.print “pname = $0/n”;

3.print “Start main running here/n”;

4.BEGIN   print “BEGIN/n”; }

5.END     print “END/n”;   }

上边的代码很简单,我们来具体的分析一下:

  1.        不用多说,是命令行;
  2.        打印出当前进程的进程号;
  3.        打印出当前perl程序的完整名称(包含路径);
  4.        打印“Start main running here”,并换行;
  5.        BEGIN{}块,打印“BEGIN”,并换行,标记BEGIN块的执行顺序;
  6.        END{}块,打印“END”,并换行,标记END执行的顺序。

 

代码运行的结果:

BEGIN

pid = 2664

pname = F:/perlTemp/PerlTemp1/Demo1.pl

Start main running here

END

根据结果,我们得出,BEGIN是在perl运行最开始运行的块,END是在perl运行最后运行的块,并注意BEGINEND必须是大写的。

 

 

copy from :
http://www.compuspec.net/reference/language/perl/BEGIN_and_END.shtml

Perl: BEGIN and END Perl Script Output BEGIN {
print ”Birth of a process…
“;

}

print ”Life of a process…
“;

die ”Murder of a process…
“;

END {
print ”Death of a process…
“;

}

Birth of a process…
Life of a process…
Murder of a process…
Death of a process…
bash-2.03$ 
bash-2.03$ 
  Perl Script Output BEGIN {
print ”Birth still runs !
“;

}

This won’t compile;

END {
print ”Death still runs !
“;

}

Birth still runs !
Can’t locate object method ”This” via package ”won::t”
(perhaps you forgot to load ”won::t”?) at 1.pl line 5.
Death still runs !

  Perl Script Output die ”Bye”;

END { print ”End 1
“ }

BEGIN { print ”Begin 1
“; }

END { print ”End 2
“ }

BEGIN { print ”Begin 2
“; }

Begin 1
Begin 2
Bye at 1.pl line 1.
End 2
End 1
BEGIN

Run some code as soon as it has all been read in by the parser and before the rest compiles.

END

Run some code as late as possible. When the interpreter is ready to shut down.

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>