关于DESTROY问题
时间:2011-04-08
来源:互联网
本帖最后由 ace_fei 于 2011-04-08 17:31 编辑
今天用Hudson做dailyCI的时候,发现在编译失败退出时,Hudson还是判定BUILD SUCCESSFUL。
我找到Hudson上调用的编译脚本,发现问题出在DESTROY函数里面。
如果屏蔽DESTROY函数中的my $context = $self->fn(); 最后exit status就为1, 否则就为0。
我理解问题所在是因为,如果在DESTROY中执行 system或者反引号``命令的话,会改变exit status。
不知道我这样理解是不是正确的?
复制代码
今天用Hudson做dailyCI的时候,发现在编译失败退出时,Hudson还是判定BUILD SUCCESSFUL。
我找到Hudson上调用的编译脚本,发现问题出在DESTROY函数里面。
如果屏蔽DESTROY函数中的my $context = $self->fn(); 最后exit status就为1, 否则就为0。
我理解问题所在是因为,如果在DESTROY中执行 system或者反引号``命令的话,会改变exit status。
不知道我这样理解是不是正确的?
- #!/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
唉,试了下还真是这么个样子的,竟然 DESTROY 会修改程序的退出值, 有点儿意思,有空再研究研究

作者: socyno 发布时间: 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