- 论坛徽章:
- 1
|
if ( can(method) ){
# call method....
}
http://bbs.chinaunix.net/viewthread.php?tid=770196&extra=page%3D1
- can(METHOD)
- "can" 检查一个对象是不是拥有一个叫做 "METHOD" 的方法。如果有,那么
- 将返回那个方法(实际上就是子程序)的引用。如果没有,那么返回 *undef*
- 也可以用两个参数来直接调用 "UNIVERSAL::can"。当第一个参数不是一个对
- 象或者是类名的时候,它返回 *undef*,所以我们也可以用这个办法知道一个
- 引用是不是一个对象。
- print "It's still an object\n" if UNIVERSAL::can($val, 'can');
- 你也可以用 Scalar::Util 模块的 "blessed" 函数来达到同样的目的:
- use Scalar::Util 'blessed';
- my $blessing = blessed $suspected_object;
- 如果 $suspected_object 是一个对象,那么 "blessed" 返回对象所属的类名
- 称,不然返回 "undef"。
复制代码
多看看文档,总是好的。 |
|