我正在尝试提取 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) ;
给出无法通过包“URI::_generic”在
找到对象方法“host”
如何检查URL是否被正确解析?
最佳答案
对于一般情况,您可以使用UNIVERSAL::can
if (ref($url) && $url->can("host")) { ... }
或异常处理
eval { print $url->host };
if ($@) { warn "\$url wasn't what I thought it was" }
但在大多数情况下,您希望深入了解错误并找到您的期望与程序行为之间的不匹配。
关于perl - 如何检查对象是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47424780/