我正在尝试提取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是否已正确解析?
答案 0 :(得分:3)
对于一般情况,您可以使用UNIVERSAL::can
if (ref($url) && $url->can("host")) { ... }
或异常处理
eval { print $url->host };
if ($@) { warn "\$url wasn't what I thought it was" }
但在大多数情况下,您可能希望深入了解错误并找出您的期望与计划行为之间的不匹配。