Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Общие вопросы > ? непонял


Автор: Гость_Fly 31.8.2003, 19:52
Пишу скрипт. Всё нормально работало и вдруг:

Software error:
Can't call method "db_join_" on an undefined value at script.pl line 248.

Я вообще не знаю что такое методы.

Вот эта строка...

dbmopen (%db_all, "worker/db_join_$sad[$c_d]", 0644 ) || die "Ошибка : $!";
print ' ########## cтрока 248
<br><br>

Я в тупике.


Автор: Nobody 31.8.2003, 21:00
Перл ругается, что функция db_join_ была вызвана с неопределенным (undef) агрументом.
А вообще, тут что-то нечисто с синтаксисом. Рекомендую написать по-понятнее. Со всякими скобочками вокруг аргументов...

Автор: Гость_Fly 31.8.2003, 23:15
но ведь db_join_ - это часть имени DBM файла..

скобочки это так - $sad["$c_d"] - щас попробую.

Автор: Unregistered 31.8.2003, 23:43
Заменил код на :

$for_file = 'db_join_'.$all_sesion["$counter_s"];
dbmopen (%db_jadro, "worker/$for_file", 0644 ) || die "Ошибка при открытии temp-БД: $!";
print ' ########## cтрока 249
<br><br>

То же самое.

Автор: NightGoblin 4.9.2003, 23:27
$all_sesion["$counter_s"]

Зачем кавычки-то вставил?... Это же не хеш.. А вообще имхо с синтаксисом тут все нормально.

Ему не нравится вызов метода db_join_ (то же самое, что и функция, в общих словах). Только вот самого вызова я тут не вижу. Может ему имя файла не нравится? Странно, у меня работает smile.gif

Автор: Tamerlann 7.9.2003, 06:43
Цитата
Ему не нравится вызов метода db_join_ (то же самое, что и функция, в общих словах). Только вот самого вызова я тут не вижу. Может ему имя файла не нравится?


И мне тоже кажется, что для начала можно с именами разобраться, сделать их сначала как можно проще для всех переменных, и имена файлов в том числе. Типа "а", "с"... Что получится?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)