Perl 板


LINE

假设主程式与 package 在资料夹中像是这样: \test\main.pl \test\util\Functions.pm 请教各位一些问题,关於副程式 sub func() 在主程式与 package 中的宣告问题 因为最近在研究把 sub 们要丢到 package 中,又要「方便使用」 (意思是不想每次都在主程式中 util::Functions::副程式() 的去使用他) (懒惰.. 只想 &副程式() 这样使用) 原本的程式是众多的 sub 们都放在 main.pl 胡乱呼叫使用 (perl不用宣告好棒阿)(误) 但这样不符合 source code 的重复使用性,不环保 为了把 sub 们分开,於是我找了多个教学後,我这样宣告: [main.pl] (改後) use File::Basename qw(dirname); use File::Basename qw(dirname); use Cwd qw(abs_path); use Cwd qw(abs_path); use lib dirname( abs_path $0) ; use lib dirname( abs_path $0) ; use util::Functions qw(副程式); use util::Functions qw/:all/ ; &副程式(); #这样使用他 &副程式(); &另一个(); [Functions.pm] package util::Functions; package util::Functions; use strict; use strict; use Exporter qw(import); use Exporter qw(import); our @EXPORT_OK = qw(副程式); our @EXPORT_OK = qw(副程式 另一个); %EXPORT_TAGS = ( all => \@EXPORT_OK, ); sub 副程式{ sub 副程式{ ... } ... sub 另一个{ ... } } 到以上为止都相安无事,只是我每在 package 中新增一个 sub 就要 @EXPORT_OK 那边加一次 主程式也要加.. OTZ (有点儿累) 但是就在我今天想要在 main.pl 主程式中使用属於 main 的副程式时...出错了 然後我试了很多种宣告,都没法在 main 里呼叫 main 的副程式 请问我是不是从头就搞错了阿?把宣告变成"严格模式"了,而无法像之前欢乐的呼叫了 快要晕倒了,请开解我一下..感谢! --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 203.69.37.115
1F:→ flu:Exporter.pm 还有个 %EXPORT_TAGS 可以用啊 11/20 00:27
2F:→ flu:比如说你可以加个 %EXPORT_TAGS = ( all => \@EXPORT_OK, ); 11/20 00:28
3F:→ flu:在caller space那边就能用 use Ur::Pkg qw/:all/ 11/20 00:28
4F:→ flu:以上是针对48th行的 "就要 @EXPORT_OK...."那句 11/20 00:38
感谢!这解决了我一个问题,就是新增了一个 sub 在 package 中, 就要写两次「sub名」,一次在 package 一次在 main.pl 我这样写:(修改在文章中方便对照,请见上方) 然後...在一直try之中,我解决了我的主问题「无法在 main 中呼叫 sub」...... 很蠢,因为在 &main::副程式() 的下方我有个 =POD 跟 =CUT 遮起来的程式码, 我以为被这样遮起来的程式码等同被 /* */ 了,结果好像不是 =_____= 删除了整段的 =POD 跟 =CUT 後,就可以正常使用 &副程式() 了。(...) (我必须把脸遮起来了) 感谢您的回应!it is very useful ! -全文终- (咦) ※ 编辑: summery0212 来自: 203.69.37.115 (11/20 16:51)
5F:→ summery0212:参考 EXPORT_TAGS 的网址 11/20 17:08
6F:→ summery0212:http://perl.find-info.ru/perl/026/intermediateperl 11/20 17:08
7F:→ summery0212:-CHP-15-SECT-4.html 11/20 17:08
8F:→ summery0212:短网址:http://ppt.cc/jdgx 11/20 17:11
9F:→ flu:perlpod文件里面有提说可以找 podchecker来用 11/20 23:06







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:e-shopping站内搜寻

TOP