本文介绍了如何声明函数并递归使用它,而不过早调用"以检查原型"的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个泛型递归函数,但为什么在Perl中没有授权

sub pv($) {
    my ($vars) = @_;
    if(ref($vars) eq 'SNMP::Varbind') {
        return $vars->tag() . (defined($vars->iid()) ? '.' . $vars->iid() : '');
    } elsif (ref($vars) eq 'SNMP::VarList') {
        return join(', ', map { pv($_) } @$vars);
    } elsif(ref($vars) eq 'ARRAY') {
        return join('.', @{$vars});
    } else {
        return $vars;
    }
}

此行返回Join(‘,’,map{pv($_)}@$vars)的错误代码"pv()调用太早,无法检查原型";

推荐答案

简单:转发声明

sub pv($);
sub pv($) {

这篇关于如何声明函数并递归使用它,而不过早调用"以检查原型"的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-20 07:55