Спасибо, я понимаю некоторое раздражение по поводу моих вопросов, но я действительно только начинающий.
К сожалению в тех манах, что я читал не акцентировалась прагма strict. До сих пор я считал, что первое использование переменной в левой части присваивания - это и есть обьявление переменной.
$dbh = DBI->connect("DBI:mysql:database=$DB:localhost",$db_user,$db_password)
|| die "Can\'t connect: $DBI::errstr\\n"; (все переменные используемые справа обьявленны перед этим)
Если это не так то как еще можно обьявить хэндлер $dbh?
Может что-то вроде $dbh = new(DBI); ?
Насчет изобретения велосипедов: нелюблю я использовать чужие библиотеки не разобравшись как они работают. Ту функцию которую я использую для обработки формы я взял из литературы, разобрал построчно, переписал посвоему (обеденив некоторые регэкспы), понимаю полностью. escape из CGI::UTIL я недопонимаю, но вроде основное что мне непонятно связано именно с модульностью - обработка формы почти такая же, и как я понимаю с теми же проблемами:
пробелы и плюсы
передаются из формы одним и тем же сиволом - "+" поэтому, как я понимаю, надо еще перед передачей значений заменить все "+" на "_PLUS;"
(хотя, я конечно не уверен, что плюс обозначающий пробел, абсолютно такой же, как плюс обозначающий собссно сам плюс
)