gpt4 book ai didi

perl - 引用 Perl/Moose 包名称的简写?

转载 作者:行者123 更新时间:2023-12-04 01:50:11 24 4
gpt4 key购买 nike

在 Python 和 Java 中,我们都有 import消除代码中完全限定的包/模块名称的重复。 Perl/Moose 中是否有任何等价物?我认为如果我们不必重复 MyApp::Model::Item,它真的会让 Moose 更好用。 .相反,我想 [somehow declare] MyApp::Model::Item;以后,只需引用Item .我可以想到所有这些使用类名的用例......

  • extends 'Item';
  • with 'ItemRole';
  • Item->new(name => 'thing');
  • method foo(Item $xyz) { ... } , 与 MooseX::Method::Signatures
  • $var->isa('Item');
  • try { ... } catch (DatabaseError $e) { ... } , 与 TryCatch
  • $Item::SOME_PACKAGE_GLOBAL_VARIABLE

  • 如果还没有这样的事情,关于我如何开始干净地实现它的任何想法?我可以看到处理类名用作字符串的情况会很棘手。

    最佳答案

    这一切都适用于 aliased

    use aliased 'MyApp::Model::Item';
    use aliased 'MyApp::ItemRole';
    use aliased 'MyApp::Exception::DatabaseError';

    extends Item;
    with ItemRole;
    Item->new(name => 'thing');
    method foo (Item $xyz) { ... }
    $var->isa(Item);
    try { ... } catch(DatabaseError $e) { ... }

    这不会:
    $Item::SOME_PACKAGE_GLOBAL_VAR

    需要这样的东西似乎很少见,但我想它可以与 namespace::alias 一起使用。模块。

    关于perl - 引用 Perl/Moose 包名称的简写?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3647826/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com