perl – 我怎样才能重新定义子程序并保留旧程序?

前端之家收集整理的这篇文章主要介绍了perl – 我怎样才能重新定义子程序并保留旧程序?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
这就是我想要实现的目标:
sub first {
    print "this is original first";
}

*original_first = \&first;

sub first {
    print "this is first redefined";
}

original_first(); # i expect this to print "this is original first"
first() # i expect this to print "this is first redefined"

我认为通过首先保存符号,我以后可以调用原始子程序(名称为original_first)并且也可以先调用,然后重新定义.但是,如果我调用original_first,我仍然会得到“这是第一次重新定义”.我需要做些什么来完成这项工作?

解决方法

这应该按预期工作:
sub first {
    print "this is original first";
}

*original_first = \&first;

*first = sub {
    print "this is first redefined";
};

猜你在找的Perl相关文章