在P e r l中,d i e函数可以用来在出现错误的时候停止解释程序的运行,并输出一条有意义的
出错消息。正如你在前面已经看到的那样,只要调用d i e函数,就能够输出类似下面的消息:
died at scriptname line xxx
d i e函数也可以带有一系列的参数,这些参数将取代默认消息而被输出。如果消息的后面
没有换行符,那么消息的结尾就附有at scriptname line xxx字样:
die "Cannot open"; #prints "Cannot open at scriptname scriptname line xxx"
P e r l中有一个特殊的变量$ !,它总是设置为系统需要的最后一个操作(比如磁盘输入或输
出)的出错消息。当$ !用于数字上下文时,它返回一个错误号,这个号可能对任何人都没有
什么用处。在字符串上下文中, $ !返回来自你的操作系统的相应的出错消息:
open(MYFILE, "myfile") || die "Cannot open myfile: $!\n";
不要使用$ !的值来检查系统函数的运行是失败还是成功。只有当系统执
行一项操作(比如文件输入或输出)之后, $ !才有意义,并且只有在该操作
运行失败后, $ !才被设置。在其他时间中, $ !的值几乎可以是任何东西,并
且是毫无意义的。
不过有时并不想使程序停止运行,只是想要发出一个警告。若要创建这样的警告, P e r l有
一个w a r n函数可供使用。w a r n的运行方式与d i e完全一样,你可以从下面这个代码中看出来,不过差别是它的程序将保持运行状态:
if(! open(MYFILE, "output)) {
warn "cannot read output: $!";
} else {
; # Reading output...
}