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