perl的pm包里如何调用其他perl文件里的方法? 10
因为历史遗留问题,系统中会有一些自建的非面向对象的公共函数包。现在我在现有平台上搭建新的东西,建了个pm包,在测试的服务器上,pm包里只要require了其他的perl函...
因为历史遗留问题,系统中会有一些自建的非面向对象的公共函数包。
现在我在现有平台上搭建新的东西,建了个pm包,在测试的服务器上,pm包里只要require了其他的perl函数包(如require('xxx/xx/xx.pl);),就可以直接用其中函数(如&getxxx();)。
但是整体搬到另一个服务器之后,这种调用就失效了。
也考虑过重新写那些老的函数包,但是考虑到时间问题,还是想试试能否直接调用。
请教这是为什么?如何才能调用? 展开
现在我在现有平台上搭建新的东西,建了个pm包,在测试的服务器上,pm包里只要require了其他的perl函数包(如require('xxx/xx/xx.pl);),就可以直接用其中函数(如&getxxx();)。
但是整体搬到另一个服务器之后,这种调用就失效了。
也考虑过重新写那些老的函数包,但是考虑到时间问题,还是想试试能否直接调用。
请教这是为什么?如何才能调用? 展开
3个回答
展开全部
1) 你说的 "调用失效", 是你的 pm 包, 还是 main ?
2) 怎麼个失效法 ? 报甚麼错 ?
3) 看看你放 pm 包的位置是否在这里
print $_.$/ foreach @INC
4) require('xxx/xx/xx.pl), 你这是 linux 还是 windows, 如果是 linux, 那看放其他 .pl 包的路径是否已有读取权限
5) 重新检查一次, 个别 package / pl 中所需要的其他 module 是否也已在新系统上配置妥当
展开全部
如下:
set array("a") 1
set array("b") 2
然后在另一个文件里面可以通过source 命令,然后test.tcl就能访问array 如下:
source test.tcl
puts "$array($a)"
set array("a") 1
set array("b") 2
然后在另一个文件里面可以通过source 命令,然后test.tcl就能访问array 如下:
source test.tcl
puts "$array($a)"
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1、确认你的其他的*.pl文件也在其他服务器上有部署;
2、确认文件的路径是否一致,字符大小写,以及引用的是绝对还是相对路径;
3、如果排出上述问题,那么重新在新服务器上直接本地也做一个pm运行试试看
2、确认文件的路径是否一致,字符大小写,以及引用的是绝对还是相对路径;
3、如果排出上述问题,那么重新在新服务器上直接本地也做一个pm运行试试看
追问
感谢帮助!
1、其他的pl文件在另外的服务器上有,这个可以确定
2、这个也可以确定...
3、这个意思是直接做个pm包做测试?
另外这个是否是开发环境配置的原因?
追答
有怀疑的,但是试验过了才知道阿
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询