永发信息网

在Perl中Require 和 use 的区别

答案:2  悬赏:80  手机版
解决时间 2021-03-07 10:54
在Perl中Require 和 use 的区别
最佳答案
最简单的理解就是..

1. use 是在 compile time (编译时) 便会处理, 而 require 则在 runtime (跑到那一行) 才处理.
2. use 在失败时会立即报错并挂掉, require 失败时会无声无息的略过. 所以很多情况下 require 的指令会写成 eval {require Foo::Bar}; die "$@" if ( $@ );

3. use 的必须是模块(package / .pm), require 就不一定是模块, 可以 require 另一个 perl script, 使之变成 main的一部份
4. use 的模块必须出现在 @INC [注1] 所定义的范围, require 无所谓, 如果 require 的东西不在 @INC 里, 写出绝对或相对路径也可, 如: require "C:/MyPerlStuff/xyz.pm"; require "../MyPerlStuff/abc.pl";

注1: @INC 是一个 Perl 的特殊数组, 里面装著所有会出现模块的目录, 如 print "@INC" 就会看到了. 有时我们想让 Perl 加入我们自己定义位置去找模块时, 可以写: push @INC, "C:/MyPerlModules/";
全部回答
不会! 所以不需要像 php 有 require 和 require_once 之分. 只要在 %inc 里见过的模块, 就不会再 require ( 或 use ). 反之, 如果您想重载一个模块, 只需要在 %inc 里把那模块去掉了, 然後再 require (或 use), 就会重新加载
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
【网络服务商的英文缩写】网络内容服务商的英
瑞典一年的学费加生活费15万能拿的下来么。如
关于若无相欠,怎会相见经典语录?
齐琪宠物工作室在什么地方啊,我要过去处理事
1972年紫砂一厂徒工班周桂珍辅导制作的壶价值
梦见流星雨,许了个愿望 意味着什么?
玉米粉做窝窝头怎么做。
插上冰箱过一会跳闸,换个插座就不跳了,家中
听说许多非专业英文书籍的中文翻译很糟糕,有
灌南县农村信用合作联社24小时自助银行地址在
大班幼儿的年龄特点是什么?
张氏私房菜馆在什么地方啊,我要过去处理事情
我要建一个砖混结构450平方米的三层楼,需要
女孩子名字叫林什么好
完整的photoshow动画制作视频教程
推荐资讯
阳光电热采暖地址在什么地方,想过去办事
【少年狂】《江城子密州出猎》中“老夫聊发少
56÷16化成百分数
合肥瑶海家具世界利辛店怎么去啊,有知道地址
四十道三位数乘两位数的乘法
附近那有三星电视专卖店
我听说中关村三小有高知家庭的上学政策:父母
雪铁龙C5,想把音响简单改装下,仅仅是更换喇
金广路地址在什么地方,想过去办事
老万在哪里啊,我有事要去这个地方
食百味在什么地方啊,我要过去处理事情
跑男三 嘉宾里有没有李易峰???
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?