<html><head><style>body{font-family:Helvetica,Arial;font-size:13px}</style></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><div id="bloop_customfont" style="font-family:Helvetica,Arial;font-size:13px; color: rgba(0,0,0,1.0); margin: 0px; line-height: auto;">Привет,</div><div id="bloop_customfont" style="font-family:Helvetica,Arial;font-size:13px; color: rgba(0,0,0,1.0); margin: 0px; line-height: auto;"><br></div><div id="bloop_customfont" style="font-family:Helvetica,Arial;font-size:13px; color: rgba(0,0,0,1.0); margin: 0px; line-height: auto;">возникла необходимость хранить данные в переменной внутри модуля довольно необычным способом. Примерно так, как это делается в DBIx::Class когда описывается модель.</div><div id="bloop_customfont" style="font-family:Helvetica,Arial;font-size:13px; color: rgba(0,0,0,1.0); margin: 0px; line-height: auto;"><br></div><div id="bloop_customfont" style="font-family:Helvetica,Arial;font-size:13px; color: rgba(0,0,0,1.0); margin: 0px; line-height: auto;">Вот пример:</div><div id="bloop_customfont" style="font-family:Helvetica,Arial;font-size:13px; color: rgba(0,0,0,1.0); margin: 0px; line-height: auto;"><br></div><div id="bloop_customfont" style="font-family:Helvetica,Arial;font-size:13px; color: rgba(0,0,0,1.0); margin: 0px; line-height: auto;"><div id="bloop_customfont" style="margin: 0px;"><div id="bloop_customfont" style="margin: 0px;"><div id="bloop_customfont" style="margin: 0px;">use strict;</div><div id="bloop_customfont" style="margin: 0px;">use warnings;</div><div id="bloop_customfont" style="margin: 0px;"><br></div><div id="bloop_customfont" style="margin: 0px;">use feature 'say';</div><div id="bloop_customfont" style="margin: 0px;"><br></div><div id="bloop_customfont" style="margin: 0px;">package BasePackage;</div><div id="bloop_customfont" style="margin: 0px;"><br></div><div id="bloop_customfont" style="margin: 0px;">my @STORAGE = ('key9');</div><div id="bloop_customfont" style="margin: 0px;"><br></div><div id="bloop_customfont" style="margin: 0px;">sub add {</div><div id="bloop_customfont" style="margin: 0px;">    my ($class, $key) = @_;</div><div id="bloop_customfont" style="margin: 0px;">    say "add $class <- $key";</div><div id="bloop_customfont" style="margin: 0px;">    push @class::STORAGE, $key;</div><div id="bloop_customfont" style="margin: 0px;">}</div><div id="bloop_customfont" style="margin: 0px;"><br></div><div id="bloop_customfont" style="margin: 0px;">sub list {</div><div id="bloop_customfont" style="margin: 0px;">    my $class = shift;</div><div id="bloop_customfont" style="margin: 0px;">    my @data = @class::STORAGE;</div><div id="bloop_customfont" style="margin: 0px;">    print "$class: ";</div><div id="bloop_customfont" style="margin: 0px;">    local $, = ',';</div><div id="bloop_customfont" style="margin: 0px;">    say @data;</div><div id="bloop_customfont" style="margin: 0px;">}</div><div id="bloop_customfont" style="margin: 0px;"><br></div><div id="bloop_customfont" style="margin: 0px;">package FirstPackage;</div><div id="bloop_customfont" style="margin: 0px;"><br></div><div id="bloop_customfont" style="margin: 0px;">our @ISA = ('BasePackage');</div><div id="bloop_customfont" style="margin: 0px;"><br></div><div id="bloop_customfont" style="margin: 0px;">__PACKAGE__->add('key0');</div><div id="bloop_customfont" style="margin: 0px;">__PACKAGE__->add('key1');</div><div id="bloop_customfont" style="margin: 0px;"><br></div><div id="bloop_customfont" style="margin: 0px;">package SecondPackage;</div><div id="bloop_customfont" style="margin: 0px;"><br></div><div id="bloop_customfont" style="margin: 0px;">our @ISA = ('BasePackage');</div><div id="bloop_customfont" style="margin: 0px;"><br></div><div id="bloop_customfont" style="margin: 0px;">__PACKAGE__->add('key2');</div><div id="bloop_customfont" style="margin: 0px;">__PACKAGE__->add('key3');</div><div id="bloop_customfont" style="margin: 0px;"><br></div><div id="bloop_customfont" style="margin: 0px;">package main;</div><div id="bloop_customfont" style="margin: 0px;"><br></div><div id="bloop_customfont" style="margin: 0px;">FirstPackage->list;</div><div id="bloop_customfont" style="margin: 0px;">SecondPackage->list;</div><div id="bloop_customfont" style="margin: 0px;"><br></div><div id="bloop_customfont" style="margin: 0px;">1;</div><div id="bloop_customfont" style="margin: 0px;"><br></div></div></div></div><div>И вот вывод:</div><div><br></div><div><div>$ perl package.pl</div><div>add FirstPackage <- key0</div><div>add FirstPackage <- key1</div><div>add SecondPackage <- key2</div><div>add SecondPackage <- key3</div><div>FirstPackage: key0,key1,key2,key3</div><div>SecondPackage: key0,key1,key2,key3</div></div><div><br></div><div>Как видно набор значений выводится идентичный для обоих модулей, хотя задумывалось иначе.</div><div><br></div><div>Вот это я ожидал увидеть:</div><div><br></div><div><div>FirstPackage: key0,key1</div><div>SecondPackage: key2,key3</div></div><div><br></div><div>Как мне получить на выходе ожидаемый вывод?</div><div><br></div><div id="bloop_sign_1414785340116806144" class="bloop_sign"><div style="font-family:helvetica,arial;font-size:13px">-- <br>ak</div></div></body></html>