Я хотел экспортировать простую функцию из базового класса, который я использую во всех своих подклассах, без использования $ self-> myfunc() все время, просто простой вызов func().Как я могу экспортировать функцию с Moose :: Exporter?
Я попытался сделать это на примере из Moose::Exporter
, но я не понимаю, что
as_is => [ 'sugar3', \&Some::Random::thing ],
было делать, как пример кажется неполным. sugar3 не определен нигде, поэтому я не знаю, где и как его использовать. Могу ли я назвать sugar3() в подклассе сейчас? Является ли сахар3() какой-то секретной Музой?
, а затем была эта вещь ... буквально
thing;
, который был экспортирован, но я понятия не имею, что вещь делает, так как нет ни одного примера этого. Это вызов функции?
Во всяком случае, еще до точки как экспортируемой функция, как вы обычно делает с Exporter, но с Мусом Exporter вместо, и что произойдет, если мой BaseClass имеет 3 уровня наследования после него, будет весь суб суб классы имеют доступ к этой экспортируемой функции?
Это не очень помогает, но, думая о попытке вытеснить наследование OO и синтаксис пакета, как это, просто дает мне heebie-jeebies. Вы уверены, что нет лучшего способа сделать то, что вы пытаетесь сделать? Кроме того, я довольно уверен (хотя я тоже мог бы легко ошибаться), что использование родителя «Что бы ни случилось» не в конечном итоге импортирует функции в локальный пакет, так что это не похоже на то, как Exporter работает. – Oesor
Я не пытаюсь смять что-нибудь, я просто использую вызов функции, чтобы отлаживать печать и проверять вещи, но я очищу их, когда сделаю im]. В любом случае я все еще хотел бы понять, как это работает. +1 спасибо за то, что поделились с нами соображениями об этом – qodeninja
'$ self-> myfunc()' и 'myfunc()' две разные вещи, и вы не должны писать метод, а затем пытаться экспортировать его как суб. Экспортированная * функция * не будет иметь доступа к объекту - то есть, это не * объектно-ориентированная *. – Ether