如何直接调用自己写的方法,而不用在调用时加上 包名->



QUOTE:
原帖由 MMMIX 于 2008-12-15 09:52 发表

既然所有符号都在 main:: 中,那还分文件干嘛?

我们这儿以前有人就是这么用的

把自己写的函数写入一个文件  下次再用的时候  用require or use 加载一下就可以随便使用了

方便自己坑害他人     

最恶劣的就是  直接调用 *.pl 的文件   小程序还行  程序大了就是噩梦  莫名其妙飞来个函数  够查半年年的


QUOTE:
原帖由 MMMIX 于 2008-12-14 20:47 发表

完整的复制了?没有任何改动?


Perl 的哪个模块是这么用的?

代码是完全复制的,没有做改动。


我说的内置模块可能我没表达清楚。是这样的,比如现在我use File::Find;这个模块,在后面我就可以这么用find(\&handleFind, $finddir);
而不需要用Find->find这种方法。不知道我说明白了没有?


QUOTE:
原帖由 miaho 于 2008-12-15 10:21 发表




代码是完全复制的,没有做改动。

文件的名字呢?尤其是 .pm 文件的名字

BTW,Test.pm 这个名字不太好,和 Perl 自带的模块 Test 冲突了 ,应该改成 Foo.pm,里面的 package Test; 也要相应的改一下。

QUOTE:
我说的内置模块可能我没表达清楚。是这样的,比如现在我use File::Find;这个模块,在后面我就可以这么用find(\&handleFind, $finddir);
而不需要用Find->find这种 ...

我给的使用 Exporter 的例子就是这种情况。BTW,你也可以看下 File/Find.pm 的内容,它 export find 用的就是 Exporter.



QUOTE:
原帖由 hitsubunnu 于 2008-12-15 10:16 发表


我们这儿以前有人就是这么用的

把自己写的函数写入一个文件  下次再用的时候  用require or use 加载一下就可以随便使用了

方便自己坑害他人     

最恶劣的就是  直接调用 *.pl 的文件 ...

这估计就是 flw 说的那种临时 Perl 程序员,或者是 Perl 的临时使用者,Perl 的名声就是被这些人败坏的


QUOTE:
原帖由 MMMIX 于 2008-12-15 10:31 发表

文件的名字呢?尤其是 .pm 文件的名字

BTW,Test.pm 这个名字不太好,和 Perl 自带的模块 Test 冲突了 ,应该改成 Foo.pm,里面的 package Test; 也要相应的改一下。


我给的使用 Exporter 的例 ...

现在没问题了,的确是调用了系统的Test.pm 我用perl -d看到的。


QUOTE:
原帖由 miaho 于 2008-12-15 13:55 发表



现在没问题了,的确是调用了系统的Test.pm 我用perl -d看到的。

那在原先的代码里面在 t.pl 的 #! 行加了 -I. 后,如果 Test.pm 和使用它的 t.pl 在同一个目录,也不应该有问题。
我是用perl xx.pl这样执行的,所以没有解析到#!/usr/bin/perl -I.


QUOTE:
原帖由 miaho 于 2008-12-15 15:17 发表
我是用perl xx.pl这样执行的,所以没有解析到#!/usr/bin/perl -I.

哦,那这种情况应该用 FindBin 和 lib。不过无论如何,和已有模块重名都不是什么好主意。