В Python и Java у нас есть import
, чтобы исключить повторение полностью определенных имен пакетов / модулей в коде. Есть ли какой-нибудь эквивалент в Perl / Moose? Я думаю, что было бы лучше использовать Moose, если бы нам не пришлось повторять MyApp::Model::Item
. Вместо этого я хотел бы [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
Если такой вещи еще нет, есть идеи о том, как я мог бы начать это реализовывать? Я вижу, что было бы сложно иметь дело со случаями, когда имя класса используется в качестве строки.