关于DESTROY问题
时间:2011-04-08
来源:互联网
今天用Hudson做dailyCI的时候,发现在编译失败退出时,Hudson还是判定BUILD SUCCESSFUL。
我找到Hudson上调用的编译脚本,发现问题出在DESTROY函数里面。
如果屏蔽DESTROY函数中的my $context = $self->fn(); 最后exit status就为1, 否则就为0。
我理解问题所在是因为,如果在DESTROY中执行 system或者反引号``命令的话,会改变exit status。
不知道我这样理解是不是正确的?
Perl code
我找到Hudson上调用的编译脚本,发现问题出在DESTROY函数里面。
如果屏蔽DESTROY函数中的my $context = $self->fn(); 最后exit status就为1, 否则就为0。
我理解问题所在是因为,如果在DESTROY中执行 system或者反引号``命令的话,会改变exit status。
不知道我这样理解是不是正确的?
Perl code
#!/usr/bin/perl package test; sub new() { my $ref = shift; my $class = ref($ref) || $ref; my $self = {}; bless($self, $class); return $self; } sub DESTROY() { my $self = shift; print "this is destroy\n"; my $context = $self->fn(); print $context; } sub fn() { my $self = shift; chdir "/home/fesu"; my $cs = `cat 1.pl`; } sub main() { my $self = shift; print "this is main\nexit 1\n"; exit 1; } package main; my $mytest = new test(); $mytest->main();
作者: ace_fei 发布时间: 2011-04-08
不应该改变退出状态,你的问题应该还有其他原因。至少你的代码我在Windows测试是没有问题的。
作者: fibbery 发布时间: 2011-04-08
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28