代码之家  ›  专栏  ›  技术社区  ›  Nikolai Prokoschenko

“eval”在CPAN模块中没有本地化$@是一个bug吗?

  •  12
  • Nikolai Prokoschenko  · 技术社区  · 16 年前

    Params::Validate ,但我不确定是否正确识别了有问题的代码段。有问题的代码未能在链上传递异常(使用 Try::Tiny ),所以我开始调试并发现 try Params::Validate 以及调查 Validate.pm source eval 没有 $@ $@ 被覆盖。

    现在我看到两种选择:

    1. $@ 因此,这是一个应该报告的错误。
    2. 这个bug在有问题的类中,因为它不应该使用 参数::验证 参数::验证 我可以保持现在的样子。

    是哪一个?我该如何处理这种情况?

    附言: 我认为CPAN模块应该坚如磐石,既不会破坏它们自己,也不会破坏它们的环境,因此问题的标题是。

    2 回复  |  直到 16 年前
        1
  •  11
  •   mob    16 年前

    看到了吗 http://search.cpan.org/perldoc?Params::Validate#SUPPORT 如何提交错误报告。你花了很多精力去发现问题的原因和解决方法。如果有人在不知道你已经学到了什么的情况下,不得不追溯你的脚步,那就太可惜了。

    我认为CPAN模块应该坚如磐石,既不会破坏自身也不会破坏环境

    在一个完美的世界里,软件总是做它声称要做的事情,并且没有任何未经证实的副作用。CPAN是一个非常开放的系统,所以几乎任何人都可以上传任何东西。我认为这与其说是一个bug,不如说是一个特性——低的入门门槛使开发Perl模块变得更容易,并鼓励开发更广泛、更有用的库。

    Params::Validate 9年前发布,至今已更新了94次。如果您仔细查看更改文件,您将看到作者在保持模块最新、修复偶发问题以及添加新功能方面非常认真。听到用户发现问题可能不会让他们感到震惊,也不应该太震惊,因为有些库仅仅是优秀的,而不是完美的。

        2
  •  4
  •   Axeman maxelost    16 年前

    有意义的 评估错误作为其API的一部分,绝对是一个bug。

    是吗 打破什么?我可以告诉你这是一个错误,但我不能告诉你,这是你没有测试的情况下,你期待一个明确的借口 $@ 没有一个是因为 Params::Validate

    推荐文章