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