+ -
当前位置:首页 → 问答吧 → 模块中子程序名和自定义子程序名相同的疑问

模块中子程序名和自定义子程序名相同的疑问

时间:2011-01-26

来源:互联网

刚看到模块这一章
use引入模块后qw/subroutines/,如果恰好该模块中的子程序和我自定义的子程序同名.并且我在接来使用子程序时并没有加"&",这种情况下perl究竟调用哪个
做了个实验,发现perl调用的是自定义的子程序,而没有调用模块中的子程序.有没有谁可以总结一下

#!/usr/bin/perl

use File::Basename qw/dirname/;



$name="/usr/local/bin/perl";
$dirname=dirname($name);
print "\$dirname is $dirname\n";

sub dirname{
       $tmp=shift;
       print "this is private subrouteines!!!\n";
       return $tmp;
}

作者: seufy88   发布时间: 2011-01-26

如果你懂 Exporter 的原理你就知道哪个先啦

作者: zhlong8   发布时间: 2011-01-26

本帖最后由 seufy88 于 2011-01-26 11:28 编辑


QUOTE:
如果你懂 Exporter 的原理你就知道哪个先啦
zhlong8 发表于 2011-01-26 10:36




   要用到"别名"方面的知识,看了,不是很懂
哪位总结一下别名吧.perl5中别名还用的多吗?
刚搜到的:
http://bbs.chinaunix.net/viewthr ... p;extra=&page=1

作者: seufy88   发布时间: 2011-01-26



QUOTE:
要用到"别名"方面的知识,看了,不是很懂
哪位总结一下别名吧.perl5中别名还用的多吗?
...
seufy88 发表于 2011-01-26 11:22




    应该是 符号表 和 typeglob 这两方面。还有就是 use 和 sub NAME BLOCK 式的函数定义是在编译期执行的,后面定义的函数覆盖了前面导入的

作者: zhlong8   发布时间: 2011-01-26

lz总提到总结,为什么你自己不尝试去学习和总结呢?
主动学习和总结,是提高任何技能的实用办法。

作者: 兰花仙子   发布时间: 2011-01-26