perl中先有鸡,还是先有蛋的问题,呵呵

perl中先有鸡,还是先有蛋的问题,呵呵

#install Perl/Net::Telnet Module

if ( ( !-e $NET_TELNET ) && ( !-e $NET_TELNET1 ) ) {
    print "Download Perl/Net::Telnet Module install file... \n";
    my_download(
"http://mirror.internode.on.net/pub/cpan/authors/id/J/JR/JROGERS/Net-Telnet-3.03.tar.gz",
        $NET_TELNET
    );
}
else {
print
"Perl/Net::Telnet Module install file have been downloaded in current directory \n";
}
&install_telnet;

# check the architecture of the driver system

use Net::Telnet ();


运行脚本前,没有Net::Telnet
本来就是希望用perl来自动下载安装的,以便下面是用
但是编译时就提示
Can't locate Net/Telnet.pm in @INC
这样的情况,各位怎么办?
刚用了2-3周perl的菜鸟,真诚求教,可能又火星了......
类似于你来到了地球,
发现地球不太和谐,
于是你想开你的飞船去海王星(你有且只有一搜飞船)
但是你的飞船停在火星上
那你怎么开着飞船去海王星?
解决的方法很简答:
你可以搭载别人的飞船去火星(也就是说你可以使用其他下载工具如wget下载Net::Telnet)
然后登上你自己的飞船  (下载之后perl Makefile.pl && make && make test && make install )
然后去海王星  (use Net::Telnet)
祝旅途顺利 ( have fun with perl )
发现自己还是很油菜的
睡觉去了
楼主太逗了

确实有才
其实,你们没搞明白 lz 的意思
LOOP:
eval {require Net::Telnet };
if ($@) {
    install ...
    goto LOOP;
}

这样的思路成么? 没测试啊,也可能用不着 LOOP?



QUOTE:
原帖由 churchmice 于 2008-8-26 01:05 发表
类似于你来到了地球,
发现地球不太和谐,
于是你想开你的飞船去海王星(你有且只有一搜飞船)
但是你的飞船停在火星上
那你怎么开着飞船去海王星?
解决的方法很简答:
你可以搭载别人的飞船去火星(也就 ...

不好意思,没明白您的意思

先wget下载Net::Telnet
=====
my_download(
"http://mirror.internode.on.net/pub/cpan/authors/id/J/JR/JROGERS/Net-Telnet-3.03.tar.gz",
        $NET_TELNET
    );
就是在调用wget下载Net::Telnet

然后登上你自己的飞船  (下载之后perl Makefile.pl && make && make test && make install )
======
&install_telnet;就是在安装Net::Telnet。
但事实上你在运行脚本前,Net::Telnet还没安装,没安装的话,脚本是编译不过的。
不知道我的意思您明白没有?
还是我不太理解您的意思?
thx


QUOTE:
原帖由 cobrawgl 于 2008-8-26 09:43 发表
LOOP:
eval {require Net::Telnet };
if ($@) {
    install ...
    goto LOOP;
}

这样的思路成么? 没测试啊,也可能用不着 LOOP?

应该是不行的,我昨天就写了一个类似的,测试了下,似乎不行

[Copy to clipboard] [ - ]
CODE:
eval {require Net::Telnet };
if ($@) {
    print "1";
}else{
        use Net::Telnet ();
}

上面代码如果在一个没有Net::Telnet 的机器上,还是会有同样的错误。
你那样当然不成了,你按照我的方法试试?