如何检查对象是否存在

时间:2017-11-22 00:04:37

标签: perl

我正在尝试提取URL的域部分,我想要介绍输入无效的情况。

 use strict;
 use warnings;
 use URI;
 use Data::Dumper;

 my $url = URI->new( "garbled" );
 # my $url = URI->new( "http://www.google.com/" ); # this works
 # print Dumper $url;
 print $url->host if defined($url->host) ;

提供Can't locate object method "host" via package "URI::_generic" at

如何检查URL是否已正确解析?

1 个答案:

答案 0 :(得分:3)

对于一般情况,您可以使用UNIVERSAL::can

if (ref($url) && $url->can("host")) { ... }

或异常处理

eval { print $url->host };
if ($@) { warn "\$url wasn't what I thought it was" }

但在大多数情况下,您可能希望深入了解错误并找出您的期望与计划行为之间的不匹配。