Автор Тема: Ошибка в результате работы функции  (Прочитано 2629 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Error202

  • Бесстрашный
  • Ветеран
  • *****
  • Сообщений: 540
  • +1/-0
  • 2
    • Просмотр профиля
    • http://www.tender-plus.ru
Ошибка в результате работы функции
« : 24 Августа 2005, 16:30:16 »
В массиве @news - 3 записи...
Почему в результате работы функции остается только первая?

Сбой в конструкции  return @news;


sub BlockSub
{


 
$sth $dbh->prepare(qqSELECT text FROM news ORDER BY date DESC LIMIT 0 3});
 
$sth->execute();
 while (
my ($text) = $sth->fetchrow_array())
  {
    
push(@news,$text);
  };
 
$sth->finish();

 return @
news;
};
« Последнее редактирование: 24 Августа 2005, 16:47:51 от Error202 »
Космическая игрушка

Оффлайн Error202

  • Бесстрашный
  • Ветеран
  • *****
  • Сообщений: 540
  • +1/-0
  • 2
    • Просмотр профиля
    • http://www.tender-plus.ru
Ошибка в результате работы функции
« Ответ #1 : 24 Августа 2005, 16:59:01 »
Все, справился... Всем спасибо...

Правда так и не понял почему

return @text;

отличается от

return "@text";
« Последнее редактирование: 24 Августа 2005, 17:10:10 от Error202 »
Космическая игрушка

Оффлайн ondr

  • Модератор
  • Глобальный модератор
  • Старожил
  • *****
  • Сообщений: 440
  • +0/-0
  • 0
    • Просмотр профиля
Ошибка в результате работы функции
« Ответ #2 : 24 Августа 2005, 19:42:14 »
return "@text";
более менее еквивалентно
return join($", @text);

если тебе интересно получить от функции именно массив, то попробуй воспользоваться следующей записью:

sub func {
    ...
  return @text;
}
my @copy = func();


perldoc perldata --> "Array Joining Delimiter"
perldoc perlsub
« Последнее редактирование: 24 Августа 2005, 19:50:45 от ondr »
0 OK, 0:1

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28