Perl модули и FreeBSD

FreeBSD, NetBSD, OpenBSD, DragonFly и т. д.

Модератор: arachnid

DarKSideBluz
Сообщения: 11

Perl модули и FreeBSD

Сообщение DarKSideBluz »

Наверное всё же немного не в тему данное творчество, но такая проблема пока встречалась только под FreeBSD.

FreeBSD 7.2 ставлю DBI и DBD::mysql, беру свой скрит и вылетает такая ошибка:

Can't locate object method "fetchrow_array" via package "DBI::Db" at mysql.pl line 17.

Ставил из портов, на всякий пожарный случай обновлял порты и перестанавливал заново, ставил из пакетов... одно и тоже, не подскажете как можно это побороть ?
Спасибо сказали:
Аватара пользователя
diesel
Бывший модератор
Сообщения: 5989
ОС: OS X, openSuSE, ROSA, Debian

Re: Perl модули и FreeBSD

Сообщение diesel »

DarKSideBluz писал(а):
25.08.2010 17:34
Наверное всё же немного не в тему данное творчество, но такая проблема пока встречалась только под FreeBSD.

FreeBSD 7.2 ставлю DBI и DBD::mysql, беру свой скрит и вылетает такая ошибка:

Can't locate object method "fetchrow_array" via package "DBI::Db" at mysql.pl line 17.

Ставил из портов, на всякий пожарный случай обновлял порты и перестанавливал заново, ставил из пакетов... одно и тоже, не подскажете как можно это побороть ?

а что в скрипте?
Спасибо сказали:
DarKSideBluz
Сообщения: 11

Re: Perl модули и FreeBSD

Сообщение DarKSideBluz »

В Linux тот же код работает нормально.

#!/usr/bin/perl -w

use DBI;


$db_user = "root";
$db_password = "12345";
@row = ();

$dsn = 'DBI:mysql:test:localhost';
$sth = DBI -> connect($dsn, $db_user , $db_password);

$query = "select * from ext";

$sth -> do($query);

while(@row = $sth->fetchrow_array()) {

print qw($row[0]\t$row[1]\t$row[2]\n);

}

$sth->finish();
Спасибо сказали:
Аватара пользователя
arachnid
Модератор
Сообщения: 1099
ОС: freeBSD

Re: Perl модули и FreeBSD

Сообщение arachnid »

а версии мускуля одинаковые?
-= freeBSD stable, fluxbox =-
"если ты будешь со мной спорить, я тебя запишу в книжечку!" (с) Ежик
Спасибо сказали:
DarKSideBluz
Сообщения: 11

Re: Perl модули и FreeBSD

Сообщение DarKSideBluz »

Я даже хуже скажу, одна и таже база данных, и один и тот же сервак.
Спасибо сказали:
Аватара пользователя
lastpriot
Сообщения: 218
ОС: FreeBSD

Re: Perl модули и FreeBSD

Сообщение lastpriot »

Фря 8.1, порты за 25 августа
ради любопытства разобрался, и пришел к такому коду, который работает ))

Код: Выделить всё

#!/usr/bin/perl -w

use DBI ();

$db_user = "test";
$db_password = "test";

$dsn = 'DBI:mysql:test:localhost';
$dbh = DBI -> connect($dsn, $db_user , $db_password) or die "Can't connect to MySQL database: $DBI::errstr\n";

$sth = $dbh->prepare( "SELECT * FROM terra" )
      or die "Can't prepare SQL statement: $DBI::errstr\n";

$sth->execute
      or die "Can't execute SQL statement: $DBI::errstr\n";

@row = ();
  while ( @row = $sth->fetchrow_array() ) {
      print ("$row[0]\t$row[1]\t$row[2]\n");
  }

$dbh->disconnect
Спасибо сказали:
Аватара пользователя
afiskon
Сообщения: 3
ОС: FreeBSD

Re: Perl модули и FreeBSD

Сообщение afiskon »

Ставьте все модули из портов. Только если их там нет или с ними какой-то косяк - из cpan. У меня крайне редко возникали какие-либо проблемы с перлом под фряхой.
Записки программиста - блог о юниксах, программировании, девайсах и не только
Спасибо сказали:
Аватара пользователя
lastpriot
Сообщения: 218
ОС: FreeBSD

Re: Perl модули и FreeBSD

Сообщение lastpriot »

ставить во фре софт в обход ports/packages неоправданный риск.
Спасибо сказали:
Аватара пользователя
arachnid
Модератор
Сообщения: 1099
ОС: freeBSD

Re: Perl модули и FreeBSD

Сообщение arachnid »

господа afiskon и lastpriot - пожалуйста, будьте внимательны при комментариях - иначе вы бы смогли прочесть в первом сообщении, что все ставилось с портов и переставлялось с пакеджей.
-= freeBSD stable, fluxbox =-
"если ты будешь со мной спорить, я тебя запишу в книжечку!" (с) Ежик
Спасибо сказали:
Аватара пользователя
lastpriot
Сообщения: 218
ОС: FreeBSD

Re: Perl модули и FreeBSD

Сообщение lastpriot »

Уважаемый arachnid, в первом посте дал решение проблемы (пример рабочего кода)
а в о стальном согласен, оффтоп)))
Спасибо сказали: