В Perl, как я помещаю несколько пакетов в единственный .pm файл?

Старый вопрос, но новое отличное решение. Просто используйте Mongostead7 автоматический скрипт для установки всех необходимых материалов. Работал для меня просто отлично. Никакой дополнительной работы не требуется.

Используйте ее следующим образом:

sudo curl -sS https://raw.githubusercontent.com/zakhttp/Mongostead7/master/mongoHomestead7.sh | sudo sh

24
задан Thomas Owens 17 November 2009 в 13:32
поделиться

3 ответа

Вы просто запускаете новый пакет с другим оператором пакета:

package PackageOne;

# ...... code

package PackageTwo;

# .... more code

Проблемы с этим подходом ( заархивировано в 2009 г. )

17
ответ дан Denilson Sá Maia 28 November 2019 в 18:19
поделиться

Обычно я это делаю следующим образом:

use strict;
use warnings;
use 5.010;

{
    package A;
    sub new   { my $class = shift; bless \$class => $class }
    sub hello { say 'hello from A' }
}

{
    package B;
    use Data::Dumper;
    sub new   { my $class = shift; bless { @_ } => $class }
    sub hello { say 'Hello from B + ' . shift->dump       }
    sub dump  { Dumper $_[0] }
}

$_->hello for A->new, B->new( foo => 'bar' );
37
ответ дан 28 November 2019 в 18:19
поделиться

Как это сделать: просто выполните несколько инструкций package .

Проблемы, о которых я могу подумать: мои -переменные не являются пакетом- локализованы, так что они все равно поделятся. Прежде чем выпустить какой-либо, по умолчанию вы используете пакет main .

3
ответ дан 28 November 2019 в 18:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: