perl中如何判断一个函数是否已定义?

raw34 发布于 2012/08/03 16:48
阅读 1K+
收藏 0

RT,求教perl中如何判断一个函数的存在和一个包是否已加载?

加载中
0
sjdy521
sjdy521

1、已经成功加载的模块会存入%INC中,比如 use strict;那么$INC{'strict.pm'}就会defined

2、一个函数被定义了,例如sub func{},那么符号表中就有有该函数的引用,检查*func{CODE} 是否definded就ok

0
皮总
皮总
sorry 我按 python 写了,稍等
0
raw34
raw34
问题解决,多谢楼上两位帮忙解答~
0
sjdy521
sjdy521

另外,还想到一个方法,用OO的方式的话,

$pkg=bless [];

$pkg->can("func") 根据返回的真假判断是函数是否有被定义

0
sjdy521
sjdy521

再补充一个方法,更加直接

defined(&func)

0
sjdy521
sjdy521
再补充一个方法 exists(&func)
0
sjdy521
sjdy521
再补充一个方法,__PACKAGE__->can('func')
返回顶部
顶部