Forum Webscript.Ru

Программирование => Perl => Тема начата: Error202 от 24 Августа 2005, 16:30:16

Название: Ошибка в результате работы функции
Отправлено: Error202 от 24 Августа 2005, 16:30:16
В массиве @news - 3 записи...
Почему в результате работы функции остается только первая?

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


sub BlockSub
{


 $sth = $dbh->prepare(qq{ SELECT 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;
};
Название: Ошибка в результате работы функции
Отправлено: Error202 от 24 Августа 2005, 16:59:01
Все, справился... Всем спасибо...

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

return @text;

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

return "@text";
Название: Ошибка в результате работы функции
Отправлено: ondr от 24 Августа 2005, 19:42:14
return "@text";
более менее еквивалентно
return join($", @text);

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

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


perldoc perldata --> "Array Joining Delimiter"
perldoc perlsub