| перл и модули |
Чтв, 23 Июль 2009 20:39  |
|
Пишу в эту тему так как она больше всего приближенная к программированию. ПС админы не обижайтесь если что не так)
Предисловие:
посыпался винт на впн сервере! стояла там асп9,
мною написаная биллинговая система на пхп + перл скрипты на подсчет трафика и занесение данных на удаленную бд.
Проблема:
База отсталась жива, билинг восстановил с бекапа (хоть и не релиз но всеже бета осталась), часть на пхп завелась с пол-оборота а вот перл скрипты жизнь портят.
Сейчас на серв поставил FC10, perl 5.10.0, и все нужные к нему модули (DBD::mysql DBI Class::DBI::mysql ...) пакетами.
Перл мостоянно ругался на отсутсвие Mysql.pm после 2х дней плясок с бубнами решил поставить все с сырцов и через cpan доставил модули.
Проблема не решилась, жует конструкцию
use DBI; или use DBD::mysql;
а мне для работы скриптов нужно
use Mysql;
$db=Mysql->Connect() и т д
скриптов не мало и переписывать их не хочется :)
Если кто-то сталкивался с такими граблями прошу помощи.
С Ув. NeiroN
[Обновления: Чтв, 23 Июль 2009 20:40]
|
|
|
| Re: перл и модули |
Птн, 24 Июль 2009 10:58   |
|
Во-первых, это не модуль DBI. Используя DBI, это было бы примерно так:
use DBI;
$dsn = "DBI:mysql:database=$database;host=$hostname;port=$port";
$dbh = DBI->connect($dsn, $user, $password);
Ранее (до версии 4...), параллельно с модулем DBD::Mysql поставлялся и модуль Mysql. И здесь во-вторых, даже у него нет метода Connect(). Методы принято называть с маленькой буквы.
Поэтому, это мог быть самописный модуль, либо Вы неправильно процитировали код.
|
|
|
| Re: перл и модули |
Птн, 24 Июль 2009 11:41   |
|
уж можете поверить что эти скрипты прекрасно работали до переустановки системы и именно в такой конструкции.
use Mysql;
$db = Mysql->Сonnect($dbhost,$dbname,$dbuser,$dbpass) or die("Error connecting to MySQL");
то есть, что бы не переписывать их все на use DBI use или DBD::mysql, мне нужно найти перл < 4, если я правильно понял
[Обновления: Птн, 24 Июль 2009 11:42]
|
|
|
| Re: перл и модули |
Птн, 24 Июль 2009 11:58   |
|
Я имел ввиду версию модуля DBD::Mysql.
Вам надо искать модуль, с которым работала Ваша программа. Я Вам просто сказал, что с модулями DBI/DBD Ваша программа не могла работать.
Вы может сделать так:
# perl -MCPAN - e shell
- это оболочка для поиска/загрузки/установки модулей для Перла. В частности, командой
> i /Mysql/
Вы получите список всех зарегистрированных модулей с упоминанием слова Mysql. Может найдет тот, что Вам нужно.
|
|
|
| Re: перл и модули |
Птн, 24 Июль 2009 12:04   |
|
Вы, знаете, я кажется нашел, то что Вам нужно:
Bundle::Mysql
Это очень старый модуль, но попробуйте его установить. Можно прямо так:
# perl -MCPAN -e 'install Bundle::Mysql'
или лучше войти в оболочу и уже из нее выполнить данную команду.
|
|
|
| Re: перл и модули |
Птн, 24 Июль 2009 19:42   |
|
поставил данный модуль, вроди как появился Mysql.pm но в нем нехватает нужных мне функций (((
нашел старый дистр все же завтра попробую поставить перл из пакетов 9ого редхата, может чего выйдет))
|
|
|
| Re: перл и модули |
Птн, 24 Июль 2009 19:43  |
|
все удалил и заново поставил с исходников, все супер, заработало!!!
спасибо огромное!
|
|
|