如何声明函数并递归使用它,而不过早调用"以检查原型" [英] How to declare function and use it recursively without "called too early to check prototype"

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

问题描述

我有一个泛型递归函数,但为什么在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($) {

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

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆