Chinaunix
标题:
求助高手关于use lib和require的问题
[打印本页]
作者:
zlhzyj
时间:
2014-11-07 11:03
标题:
求助高手关于use lib和require的问题
File::Copy::Recursive模块必须后面qw(fcopy rcopy dircopy fmove rmove dirmove);才能用一些不是默认的函数,现在我想把该模块放到自己定义的目录下(../Perl_module/File/Copy/Recursive.pm)
请看:
my $pm_path;
BEGIN{
$pm_path = $ENV{'PWD'};
}
use lib "$pm_path/Perl_module/File/Copy";
require "Recursive.pm" ;
但是运行的时候提示fcopy,dircopy等函数是未定义的,应该是没有导入进去,
(如果是之前use File::Copy::Recursive qw(fcopy rcopy dircopy fmove rmove dirmove);的话可以正常运行)
请问这种情况下应该怎样导入fcopy,dircopy等函数呢,请各位高手帮帮忙,比较急~!
作者:
murdercool
时间:
2014-11-07 11:16
require "Recursive.pm" ;
复制代码
->
use Recursive qw(fcopy rcopy dircopy fmove rmove dirmove)
复制代码
作者:
zlhzyj
时间:
2014-11-07 11:32
请问是否可以完整写个代码说明一下,恕我愚钝,有点看不太明白,非常感谢!!
回复
2#
murdercool
作者:
zhlong8
时间:
2014-11-07 11:50
require 是在运行时执行的,而编译时它还没执行,函数还没导入呢,自然找不到对应的函数。
作者:
zlhzyj
时间:
2014-11-07 11:51
请问那我应该如何用到里面的方法呢?非常感谢啊!
zhlong8 发表于 2014-11-07 11:50
require 是在运行时执行的,而编译时它还没执行,函数还没导入呢,自然找不到对应的函数。
作者:
zhlong8
时间:
2014-11-07 12:58
use lib "$pm_path/Perl_module"; #不应该写 File/Copy,模块的路径和 package 声明是对应的
# 这两个等价
use File::Copy::Recursive qw(function names);
BEGIN {
require File::Copy::Recursive;
File::Copy::Recursive->import(qw(function names));
}
复制代码
作者:
zlhzyj
时间:
2014-11-07 13:24
回复
6#
zhlong8
非常感谢版主大神的解答,已经解决,谢谢!
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2