Как работает Set :: Scalar Universe? - PullRequest
2 голосов
/ 13 декабря 2010

Я создал много наборов и заметил, что все они используют одну и ту же вселенную.

Я не мог понять, как поддерживаются вселенные. Это одна вселенная, общая для всех наборов в сценарии (некоторая глобальная переменная)?

1 Ответ

3 голосов
/ 13 декабря 2010

Ну, на самом деле это лексическая переменная в Set :: Scalar :: Universe :

my $UNIVERSE = __PACKAGE__->new;

sub universe {
    my $self = shift;

    return $UNIVERSE;
}

Тогда в Set :: Scalar у вас есть:

$self->{ universe } = Set::Scalar::Universe->universe;

, который просто выбирает копию этой единственной переменной (которая была инициализирована при загрузке Set :: Scalar :: Universe.

Документы Set :: Scalar попутно упоминают, что непересекающиеся вселенные еще не реализованы.

...