Forum Webscript.Ru

Программирование => Perl => Тема начата: AnnA от 12 Января 2006, 16:38:48

Название: selectrow_array
Отправлено: AnnA от 12 Января 2006, 16:38:48
всем привет. :)
вот такая у меня наблюдается странность:
в документации написано, что в скалярном контексте этот метод возвращает "первое поле первой строки". согласна, проверено - работает. супер. пишем функцию, контекст - список - возвращает так же "первое поле первой строки", хотя по документации должна бы вернуть "первую строку данных". обидно, понимаете ли. :( вот и функция: sub one_row ($@) { my ($statement,@bind_val)=(shift,@_);
my @row=\'\';
    if (@bind_val) { @row = $dbh->selectrow_array($statement,undef,@bind_val) or die "$statement, $DBI::errstr"; }
    else { @row = $dbh->selectrow_array($statement) or die "$statement, $DBI::errstr"; }
return wantarray ? @row : $row[0];
}

вызов:
my ($item,$content)=&one_row("select title,body from rubricator where id=?",3);
а вот, если сделать:my ($item,$content)=$dbh->selectrow_array("select title,body from rubricator where id=3") or die $DBI::errstr;
работает.
где я ошиблась в этой функции?
Название: selectrow_array
Отправлено: arto от 13 Января 2006, 12:45:28
"(@row) =" ?