相关疑难解决方法(0)

在Perl脚本结束之前始终执行一些代码

如何设置必须在Perl脚本停止之前执行的代码?

在这里,如何在perl脚本退出之前运行一段代码我读到了有关END子程序的内容,但它只在脚本正常结束时执行.但是,如果用户通过^ C中止程序,我也希望执行代码.

perl

5
推荐指数
1
解决办法
694
查看次数

Perl:如何在没有警告的情况下调用END {}内的对象方法?

package JustTesting;
use strict;
use warnings;

sub new {
    my $self = {};
    bless($self, shift);
    END { $self->goodbye() };
    return $self;
}

sub goodbye {
    print "Goodbye.\n";
}

package main;
my $this = JustTesting->new();
Run Code Online (Sandbox Code Playgroud)

输出:

变量"$ self"不会在./test第10行保持共享.
再见.

显然它可以工作,我可以no warnings在END块内抑制警告.但我想知道是否有更好的方法来做到这一点.

我尝试使用这样的匿名子:

my $cleanup = sub { $self->goodbye() };
END { $cleanup->() };
Run Code Online (Sandbox Code Playgroud)

然后像这样:

END { sub { $self->goodbye() }->() };
Run Code Online (Sandbox Code Playgroud)

但我总是得到同样的警告.

perl perl-module

3
推荐指数
2
解决办法
1740
查看次数

标签 统计

perl ×2

perl-module ×1