标签: die

Perl:系统调用成功后,"或死"命令仍然会结束脚本

我使用以下行来进行简单的系统调用:

system ("mkdir -p Purged") or die "Failed to mkdir." ;
Run Code Online (Sandbox Code Playgroud)

执行脚本确实使系统调用,我可以找到一个名为Purged的目录,但仍然会打印错误消息并且脚本将死亡.我的语法有什么问题?

perl system-calls die

13
推荐指数
3
解决办法
1万
查看次数

如果生成警告,如何使Perl死掉?

我希望我的脚本perl在生成警告时死亡,包括由使用过的包生成的警告.

例如,这应该死:

use strict;
use warnings;
use Statistics::Descriptive;

my @data = ( 8, 9, 10, "bbb" );
my $stat = Statistics::Descriptive::Full->new();
$stat->add_data(@data);
Run Code Online (Sandbox Code Playgroud)

use warnings FATAL => 'all';不会有帮助,因为它是词法范围的.测试:: NoWarnings也不起作用,因为它不会杀死脚本.

perl warnings die

12
推荐指数
2
解决办法
2674
查看次数

jQuery:绑定和解除绑定实时点击事件

所以我的问题有两个限制:

  1. 我必须在我的点击事件中使用外部函数调用,并且
  2. 我必须使用实时点击事件,而不是绑定典型的点击事件.

所以我的问题是我在点击事件发生后尝试取消绑定,然后在点击事件代码完成后重新绑定它.我这样做是为了防止代码当前正在进行中的重复点击(我有fadeIn/Out动画,可以快速点击按钮两次或三次,从而执行我的代码2或3次,这是不需要的) .我正在使用的代码如下:

$item.live("click", handleClick);
Run Code Online (Sandbox Code Playgroud)

function handleClick(ev) {

    $(this).die("click");

    // perform code here, including things with 'ev'

    $(this).live("click", handleClick);
}
Run Code Online (Sandbox Code Playgroud)

我疯了,还是应该没有问题?现在,我可以点击一次,但之后不会再次点击.很明显die()正在工作,但它并没有因为某种原因而被重新绑定到该函数.我已经验证它确实到达handleClick()中的代码以重新绑定实时点击.

有任何想法吗?任何帮助将不胜感激.谢谢.

jquery bind click live die

11
推荐指数
2
解决办法
1万
查看次数

perl 5's carp 的 raku 模拟是什么?

默认情况下,Raku 的 "die" 报告 "die" 所在的行号,如果你想要调用上下文的行号,ala "carp" with perl 5 怎么办?

exception carp die raku

10
推荐指数
1
解决办法
191
查看次数

PHP:exit()/ die()和return之间有什么区别; 在"自我"和包含文件?

我还在学习PHP学习.终止脚本时,exit()/ die();return;?之间有什么区别:

  1. 在同一个文件中(单个脚本文件)
  2. 在包含的孩子内
  3. 在包含的父级内

php return exit die

9
推荐指数
2
解决办法
9110
查看次数

如何在perl中测试异常类型?

如何检查导致脚本或eval块终止的异常类型?我需要知道错误的类型以及异常发生的位置.

perl eval exception die

8
推荐指数
1
解决办法
6187
查看次数

Perl:没有死的捕获错误

我正在玩错误处理并遇到一些问题.我使用DBI模块连接数据库.

我通过使用我调用错误的子例程来执行自己的错误处理.

我可以捕获我自己的死并处理它们就好了但是当我的数据库连接失败时,DBI模块显然打印出它自己的死:

DBI connect(...)失败:ORA-12154:TNS:无法解析指定的连接标识符(DBD ERROR:OCIServerAttach)...

我怎么去抓这个?

我试过这样使用$SIG{__DIE__}:

local $SIG{__DIE__} = sub {
  my $e = shift;
  print "Error: " .$e;
};
Run Code Online (Sandbox Code Playgroud)

这是在我的主文件的底部,在这个文件中我也调用了我自己的模块中可用的connect子例程.我也尝试将这段代码放在我的模块的底部,但它仍然打印出没有的错误

错误:

在它面前.

error-handling perl die

8
推荐指数
2
解决办法
1万
查看次数

die()会执行ob_end_flush()吗?

我似乎无法在任何地方找到一个好的答案.如果我正在运行输出缓冲,并且a die()被触发,那么它ob_end_flush()也会启动吗?

php die output-buffering

8
推荐指数
1
解决办法
769
查看次数

Perl system()调用会死吗?

可以在Perl 5中system()拨打电话die吗?

(换句话说,为了100%防止system()打电话的程序,它是否需要被包装成一个eval,还是完全没必要?)


我没有找到这种可能性perldoc system,但没有找到准确的"这个呼叫永远不会死".

注意:问题是关于这里的基本CORE Perl,没有autodie或任何其他具有类似效果的自定义模块.此外,假设没有ALRM设置信号,或任何其他自定义信号处理程序.

我假设Perl 5.*的所有版本都表现相同,但如果没有,则可以理解与5.8相关的答案.

perl eval system die

8
推荐指数
1
解决办法
1699
查看次数

Perl die() 调用神秘地没有死

在对项目中一个非常模糊的错误进行了一些认真的调试之后,我能够得到这个简短的代码。一个没有死亡的死亡呼叫。

该问题仅在调用script.pl. 如果Class_A直接调用,则die调用会成功。

我们需要三个文件:

文件 1:script.pl

use strict;
use warnings;
use lib '.';
use Class_A;

# This should not execute. Class_A should die at loading time
print "We shouldn't get here. Class_A shoud not load and die.\n";
Run Code Online (Sandbox Code Playgroud)

文件 2:Class_A.pm

package Class_A;
use strict;
use warnings;
use Class_B;

# This code SHOULD die:
my $p = Class_B->new;
$p->do_something->die_now;


1;
Run Code Online (Sandbox Code Playgroud)

文件 3:Class_B.pm

package Class_B;
use strict;
use warnings;

sub new {
    my $class = shift;
    bless …
Run Code Online (Sandbox Code Playgroud)

perl eval die

8
推荐指数
1
解决办法
126
查看次数