免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1724 | 回复: 2
打印 上一主题 下一主题

关于使用perl中原型的一个问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-11-01 14:57 |只看该作者 |倒序浏览
我在开发过程中碰到了下面的这个问题,请大家帮忙看一看。
在login.cgi中require login.pl文件,使用login.pl中的login(),若login()是以原型的
形式定义的,那么在login.cgi中必须再次以原型的形式声明该函数,否则在login.cgi中
,该函数就不再受原型约束。

示例代码如下:
-----login.pl------
#!/usr/local/bin/perl

sub login(\@)  # "\@"以原型的形式,指定login的参数必须是array
{
    my $ref_userinfo_array = shift; #这里得到的是一个array 引用
    my ...   
    #下面的代码省略
}
------end------

------login.cgi------
#!/usr/local/bin/perl

require "login.pl";
sub login(\@); #此处必须以原型形式再次声明,否则下面的login()调用就会出问题

#main script
my @user_info = ("tangning", "123456"; #loginid and passwd
login(@user_info);
------end------

我现在的问题是:在*.cgi中需要使用很多的外部*.pl中定义的函数,大多数函数都是用原
型的形式定义的,为了正确使用这些函数,需要一个一个再次定义,非常费事。
请问大家有没有什么办法可以不用在*.cgi中再次声明这些外部的函数。多谢。

论坛徽章:
0
2 [报告]
发表于 2003-11-01 18:21 |只看该作者

关于使用perl中原型的一个问题

原帖由 "tangning" 发表:
我在开发过程中碰到了下面的这个问题,请大家帮忙看一看。
在login.cgi中require login.pl文件,使用login.pl中的login(),若login()是以原型的
形式定义的,那么在login.cgi中必须再次以原型的形式声明该函数,..........



Perl的原型仅在编译阶段检查,所以你的问题可以这样解决:

BEGIN
{
    require "login.pl";
}

论坛徽章:
0
3 [报告]
发表于 2003-11-03 14:53 |只看该作者

关于使用perl中原型的一个问题

问题解决,多谢。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP