Привет, ребята, нужна помощь в отношении модулей и очистки динамически созданного массива в другом модуле.
У меня есть 1 файл perl и 2 модуля perl (я его создал)
//file.pl
use ABC;
use XYZ;
for(qw/US UK China India France/)
{
ABC::fetchData // This will create array varialbes
XYZ::calculateYield
// This will use arrays dynamically created from fetchData
// At this point, when i return I want a new copy of the array used in XYZ.pm's calculateYield function
}
Этоэто пример ABC.pm
//ABC.pm
package ABC;
our @mainArray;
sub fetchData
{
// connect to database and fill up the @mainArray;
@mainArray = qw/a b c d e f/;
}
1;
Это пример XYZ.pm
//XYZ.pm
package XYZ;
sub calculateYield
{
foreach my $eachelement ( @ABC::mainArray)
{
push @{$eachelement), "some_data_that_changes_every_time_from India, UK, US, France or China";
}
}
Теперь проблема здесь, я хочу очистить массив " @ {$ eachelement}"после каждого вызова для (1..5) , поскольку $ eachelement остается одинаковым при каждом подсчете.Только значение данных, которые помещаются в push @ {$ eachelement) в модуле XYZ, изменяется в зависимости от значения (США, Великобритания, Китай, Индия, Франция).
Вопросдля группы есть ли способ очистить массив в модуле, имя которого создается динамически.Как, например, я хочу очистить @ {$ eachelement} в XYZ.pm после каждого выполнения цикла for.
Надеюсь, я его поместил вспособ, который можно понять.Если у кого-нибудь из вас есть лучшее решение или что-то еще, что я могу использовать, я готов это сделать.Отпишитесь, если вопрос или какая-либо часть кода не ясны.
PS: я не ищу небольшую ошибку или опечатку, это всего лишь пример кода.Я просто хочу знать, как это можно сделать.
Спасибо за заранее ожидаемую помощь.