Я очень новичок в Perl (но из фона C #) и пытаюсь переместить некоторые скрипты в окно Windows.
Из-за того, что некоторые модули не работают с Windows, я изменил способ подключения к БД.
У меня есть база данных sqlserver, и у меня был цикл чтения каждой строки в таблице, а затем в этом цикле был отправлен другой запрос для выбора другой информации.
Я был ошибкой, когда два оператора не могут быть выполнены одновременно в одном соединении.
Поскольку мой объект подключения является глобальным, я не мог найти простой способ обойти это, поэтому решил сохранить первый набор данных в массиве, используя:
my $query = shift;
my $aryref = $dbh->selectall_arrayref($query) || die "Could not select to array\n";
return($aryref);
(это в файле модуля, который называется)
Затем я выполняю цикл foreach (где @ $ s_study - это $ aryref, возвращенный выше)
foreach my $r_study ( @$s_study ) {
~~~
my $surveyId=$r_study->{surveyid}; <-------error this line
~~~~
};
Когда я запускаю это, я получаю сообщение об ошибке "Не ссылка на хэш". Я не понимаю ?!
Может ли кто-нибудь помочь!
Бекс