- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有以下代码:
my $content = $response->decoded_content((charset => 'UTF-8'));
my $feed = XML::Feed->parse(\$content) || $logger->error("When retrieving $URL: ", XML::Feed->errstr);
if (defined $feed) {
for my $entry ($feed->entries) {
#DO SOMETHING
}
}
对于某些站点,XML::FEED 表示无法检测提要类型。这是我必须要看的东西,但这不是我现在的问题。此示例代码在一个 while 循环内,我正在检索不同的 RSS,我希望即使某些 URL 失败时脚本也能运行。
当我收到错误消息时,定义的函数似乎不起作用:
Can't call method "entries" without a package or object reference
谁能告诉我处理测试的正确方法是什么?
最佳答案
您首先必须检查 $feed 的值。
您描述的错误消息很明显:$feed 不是包/对象引用,但它可以是一个简单的哈希值。所以它被定义了。
在 if(defined) 前面添加我最喜欢的调试行:
warn Data::Dumper->new([ $feed ],[ '*feed' ])->Sortkeys(1)->Dump();use Data::Dumper;
你会以一种很好的方式看到它的值(value)。如果不进行测试,我会说 $feed 包含您的记录器的结果,它可能是 1 或 0 或类似的东西,因为您将 $feed 的值设置为 XML::Feed->parse,如果这不成功(未定义)它是 $logger->error 的结果。
最好这样写:
my $feed = XML::Feed->parse(\$content);
if (defined $feed) {
for my $entry ($feed->entries) {
#DO SOMETHING
}
}
else {
$logger->error("When retrieving $URL: ", XML::Feed->errstr);
}
因为据说 parse 会返回一个对象,我猜它会在出错时返回 undef。
关于perl - 为什么这个定义的值不被识别为包或对象引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10423108/
我正在向我的 Node Express 服务器添加一个新功能,该功能将允许我上传驾驶员 ELD 每日日志,并从该图像/pdf 中获取驾驶时间、开始时间、结束时间、午餐等。 我正在考虑将 pdf 转换为
已关闭。此问题旨在寻求有关书籍、工具、软件库等的建议。不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以
我正在尝试为 Adobe XD 构建一个插件。我想在我的代码中使用一些 npm 包和一些 Node.js API。这可能吗? 最佳答案 Javascript support page说你可以使用一
我是一名优秀的程序员,十分优秀!