perl函数说明(die)

Agent本地部署教程详细步骤 在开始之前,你需要明确你要部署的Agent是什么。如果你需要部署其他Agent,请参考其官方文档调整步骤。 阅读详情
die
   die LIST
   die

在 eval 之外,这个函数把 LIST 里的数值连接起来打印到 STDERR 并且带着当前的 $!(C 库的 errno 变量)的值退出。如果 $! 为 0,它就带着 $?>>8 值(这个值是从 system,wait,管道 close,或者 `commend` 退出的最后一个子进程的状态)退出。如果 $?>>8 为 0 ,那么该函数带着 255 退出。

在一个 eval 里面,该函数把 $@ 变量设置为将要生成的错误信息,然后退出 eval,而 eval 返回 undef。因此 die 函数可以用于抛出命名例外,而这个命名例外可以在程序的更高层捕获。参阅本章稍后的 eval。

如果 LIST 是一个单对象引用,那么就假设该对象是一个例外对象,并且象在 $@ 里的例外那样毫不修改地返回。

如果 LIST 为空并且 $@ 已经包含一个字串值(通常是来自前面一次 eval),那么就在该字串后面附加“\t ...propagated”再次使用。这样做有益于传播(抛出)例外:

   eval { ... };
   die unless $@ =~ /Expected exception/;

如果 LIST 为空并且 $@ 已经包含一个例外对象,则调用 $@->PROPAGATE 方法来判断该例外应该如何传播。

如果 LIST 为空并且 $@ 也为空,那么使用字串“Died”。

如果 LIST 的最后一个值不是以换行符结尾(而且你不是在传递一个例外对象),则在该信息后面附加当前脚本文件名,行号,以及输入行数(如果有),然后再附加一个换行符。提示:有时候在你的信息上附加", stopped" 会令它更有意义,因为后面会附加 "at scriptname line 123" 这样的东西。假设你正在运行一个叫 canasta 的脚本;看看下面两种退出方法的区别:

   die "/usr/games is no good";
   die "/usr/games is no good, stopped";

它们分别输出:

   /usr/games is no good at canasta line 123.
   /usr/games is no good, stopped at canasta line 123.

如果你希望自己的错误信息报告文件名和行数,使用特殊标记 _ FILE _ 和 __ LINE __:

   die '"', __FILE__, '", line ', __LINE__, ", phooey on you!\n";

这句代码生成下面这样的东西:

   "canasta", line 38, phooey on you!

再说另外一种风格——看看下面两个相等的例子:

   die "Can't cd to spool: $!\n"   unless chdir '/usr/spool/news';

   chdir '/usr/spool/news'   or die "Can't cd to spool: $!\n";

因为重要的部分是 chdir,所以通常会用第二种形式。

又见 exit,warn,%SIG,和 Cary 模块。


保姆级教程:在K230开发板上为张大头步进电机实现位置、速度、回零全功能控制 本文提供了一份详细的K230开发板与张大头步进电机的控制教程,涵盖硬件连接、协议解析、模块化代码实现及实战案例。通过位置、速度和回零功能的全面讲解,帮助开发者快速掌握步进电机的高级控制技术,适用于自动化、机器人等应用场景。 阅读详情

相关推荐

perl中$0,ARGV,use warnings,use stricts和die的使用

#argv.pl #!/usr/bin/perl use warnings; #开启该程序报错警告功能,指出错误位置和原因 use strict;#perl中编译指令,如果程序不遵守优良的编码风格(例如每一行perl语句末尾加分号;变量前加my等)则执行失败 #die 命令当程序执行错误时,退出程序报错,输出双引号中的内容 if(@ARGV != 3){ die "\tN...

qq_21478261的博客 1765

perl中的die语法

if ( ! open LOG, '>>', 'logfile' ) {   die "cannot create logfile: $!"; } 如果open失败,die会终止程序的运行,并且告诉我们无法创建日志文件 $!:会给我们一个解释,如:fine not found之类的,也就是在c或其他语言里面调用perror取得的字符串。     这个解释性的系统错误信息保

娜然的专栏 1万+

基于YOLOv5的火灾检测

包含已经训练好的火焰和烟雾检测的模型,可以直接用于推理检测。

perl ---die 函数

<br />在P e r l中,d i e函数可以用来在出现错误的时候停止解释程序的运行,并输出一条有意义的<br />出错消息。正如你在前面已经看到的那样,只要调用d i e函数,就能够输出类似下面的消息:<br />   died at scriptname line xxx<br /><br />d i e函数也可以带有一系列的参数,这些参数将取代默认消息而被输出。如果消息的后面<br />没有换行符,那么消息的结尾就附有at scriptname line xxx字样:<br />   die "C

zhangfn2011的专栏 1万+

perl的异常处理die、warn、eval函数--DBI的RaiseError

在很多情况下,系统调用可能会失败;例如,尝试打开不存在的文件,或者删除某个仍含有文件的目录,或者尝试读取没有读权限的文件。在前面的示例中,我们已经用到了die函数,本节将 详细讨论有关错误处理和错误处理函数的相关内容。这些函数包括die函数、warn函数和eval函数die函数用于在命令或文件句柄失败时退出Perl脚本。 warn函数类似于die函数,但它不会退出脚本

直到世界的尽头 1万+

perl die 常见用法

die JUtility->dump_object($slide); 将model 对象打印输出的方法 die JDB->get_global_sql(); 打印sql 语句输出情况 JDB->get_global_sql(1); 清除以前执行的sql //die 常见变量  die JUtility->dump_object($a); //di

xrl2012的专栏 1467

perl进程终止函数die/warn/exit/kill

函数名:die 调用语法:die (message); 解说:终止程序并向STDERR输出错误信息。message可以为字符串或列表。如果最后一个参数不包含换行符,则程序文件名和行号也被输出。 例子:die ("Cannot open input file"); 结果输出:Cannot open input file at myprog line 6.   函数名:w

longjing1113的专栏 1万+

Perl-die

[align=center][size=large][b]Perl-die[/b][/size][/align] 当你的Perl程序遇到严重问题时,你的程序应该终止运行,并用错误信息告知原因,这样的功能可以用die函数来实现,它能够让我们自定义“严重错误”信息。 [code="perl"] if (!open LOG , ">> logfile"){ die "Cannot cre...

android菜鸟的专栏 164

【转】Perldie、warn、eval函数

在Windows中,不能使用 or die $!. die函数 18.4 错误处理 在很多情况下,系统调用可能会失败;例如,尝试打开不存在的文件,或者删除某个仍含有文件的目录,或者尝试读取没有读权限的文件。在前面的示例中,我们已经用到了die函数,本节将 详细讨论有关错误处理和错误处理函数的相关内容。这些函数包括die函数、warn函数和eval函数die函数用于在命令

Eucalyptus 838

Perldie和warn函数

die和warn die可以在出现错误的时候停止程序,并给出消息。默认会输出出错的程序名称和出错行号 warn函数die函数类似,但和die的区别是不会终止程序 die和warn的参数末尾如果给了\n,将不会输出出错的程序名称和出错的程序行号 use autodie;可以自动探测操作系统层面上的错误并停止程序 例如,下面打开文件的操作: if ( ! open LOG "<" ...

qq_38791687的博客 365

Perldie、warn、eval函数

die函数  18.4 错误处理  在很多情况下,系统调用可能会失败;例如,尝试打开不存在的文件,或者删除某个仍含有文件的目录,或者 尝试读取没有读权限的文件。在前面的示例中,我们已经用到了die函数,本节将 详细讨论有关错误处理和错 误处理函数的相关内容。这些函数包括die函数、warn函数和eval函数。  die函数用于在命令或文件句柄失败时

兴趣,激情 2676

关于perl中Exit的函数使用

关于perl中Exit的函数使用    o exit EXPR  o exit这个函数把 EXPR 当作一个整数计算然后立即以该数值为最终的程序错误状态退出。如果省略了 EXPR,那么该函数以 0 状态退出(意思是“没有错误”)。同时,函数的状态是0代表着程序执行成功后推出,如果是1代表是程序执行失败后推出。当然,函数的状态还可以取其他的值,但是眼根据perl语言具体运行的环境

中关村村长的专栏 1万+

perl中的die|warn|exit

1.die 用于输出用户自定义的错误信息,并终结perl程序的执行。如, if($ret == -1){ die "ret not zero!"; }输出结果为: ret not zero! at test.pl line 9. 2.warn 和die的用法类似,只是warn不会终结perl程序的执行。 3.exit 终结perl程序的执行,并返回指定

@_囚徒-2018_的家园 1965

Perl语言入门笔记 第五章 输入与输出(标准输入输出,文件句柄,printf,die,say)...

=pod #第五章 输入与输出 while(defined($line = <STDIN>)) #defined (xxx) xxx为undef则为假,否则为真 { print "I saw $line"; } while(<STDIN>) #while是一次读取一行,下次读取会忽略上一行,所以最好写while循环 { print ...

dietan8353的博客 425

两个半小时学会Perl

两个半小时学会PerlBy Sam Hughes译者:胡瀚森(Sam Hu) (阅读原文)Perl是一门动态的、动态类型的高阶脚本(解释型)语言,常常与PHP和Python相提并论。Perl的语法借鉴了许多古老的Shell脚本,并且因为过度使用难懂的符号而声名狼藉,这使得人们几乎无法从Google搜索到想要的语法知识。Perl作为一门脚本语言非常适合用作胶水语言,将其他脚本和程序连接到一起。Per...

ringliwei 3642

Perl语言入门——输入与输出

读取标准输入:     while(){         print "I saw $_";     }         foreach(){         print "I saw $_";     } 注意这两个的实际执行过程略有不同 钻石操作符输入:钻石操作符 钻石操作符是“行输入”操作符的特例,它并不从键盘获得输入,而是从用户指定的位置读取     while(defined($li

rockiecxh的专栏 929

perl函数说明(eval)

eval BLOCK eval EXPR eval eval 关键字在 Perl 里起两种不同的但相关的作用。这些目的是用两种形式的语法来表现的, eval BLOCK 和 eval EXPR。第一种形式捕获那些致命的运行时例外(错误),类似于 C++ 或 Java 里的 “try 块”。第二种形式在运行时实时地编译和执行一小段代码,并且也和第一种形式一样捕获任何例外。但是第二种形式比第一种形

紫轩阁 5667

Perl DBI 数据库操作

本次会议将教你如何使用PERL访问Oracle数据库和其他数据库。 Oraperl模块以访问Oracle,请查看Oraperl手册。 DBI模块使用通用的方式来访问数据库。在本章中,我们将讨论这个模块。 自Perl 5中已经变得非常容易使用DBI编写数据库应用程序. DBI代表独立于数据库的接口Perl DBI为Perl代码和底层数据库之间提供了一个抽象层,这意味着, 让

酌希的专栏 6756

perl脚本语言学习1——基础篇:变量、数组、哈希数组、循环、文件、函数

介绍perl语言的基础知识,包括变量、函数、文件操作、循环控制等

qq_42135020的博客 5493

perl 输出文件的指定行

perl 输出文件的指定行

oligaga的博客 794

Perl文本处理

一、Perl句柄 1、定义:Perl通过句柄与“外部”的世界的连接,句柄是一个顺序号,对于打开的文件是唯一的识别依据。是一种特殊的“数据类型”。 2、间接文件句柄:任何有效的Perl标识符组成,但没有标志性的前缀,经常以大写字母表示他们。 (1)STDIN(standardinput):默认的输入间接Perl文件句柄。 文件句柄读取的数据取自用户选择的输入设备,通常是键盘。 (2)STDOUT(standardoutput):默认的输出间接Perl文件句柄。 ...

weixin_42780570的博客 1254
上一篇: perl函数说明(delete)
下一篇: perl函数说明(dump)
易水寒江
博客等级 码龄12年 179粉丝 72原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值