Устал искать уже который день ошибку.
Вот код на чтение конфига:
# ============================================================
# SUBS
# ============================================================
sub read_conf {
my $conf = shift @_;
my $var = shift @_;
if ($var =~\'pathtosave_folder\') {
print "PATH TO SAVE !!!!";
}
my $result;
my $logfile = \'E:\\logfile.log\';
open (CONF, "<$conf") || &logfile($logfile, "Can not open config file ( $conf ). File unaviable or you haven\'t permissions!\\n");
my $line;
while ($line = ) {
if (($line!~ m/^[\\s\\t++]\\#/g) and ($line!~ m/^#/g) and ($line!~ m/^[\\s\\t++]\\n/g) and ($line!~ m/^[\\s\\t++]#/g) and ($line!~ m/^\\n/g)) {
$line =~ s/[\\s\\t++]//g;
chomp $line;
($param,$arg) = split (/=/,$line);
$result = $arg if $param eq $var;
}
}
close (CONF);
return $result;
}
Вот содержимое самого конфига:
####################################################
#
# Общие конфигурационные настройки для соединения и т.д.
#
####################################################
#
# CONFIG FONDU
#
# адресс SMTP сервера
smtpserver = 10.0.43.1
# порт SMTP сервера
smtpport = 25
# адрес POP3 сервера
pop3server = 10.0.43.1
# порт POP3 сервера
pop3port = 110
# имя пользователя для забора почты с POP3 сервера
pop3user = urbd.fishka
# пароль пользователя для забора почты с POP3 сервера
pop3pass = olk
# забор писем только от пользователя где в поле FROM стоит
# указааный адрес и отправка ответных писем только на этот адрес
# Внимание! Обратите внимание на соответствие адресов откуда
# получается и куда отправляется почта с их заговками (тема письма)
# наче могут быть конфликты при обмене!
from = urbd.fondu@xxx.com
# отправлять почту с обменом c адреса на адрес
mailfrom = urbd.fishka@xxx2.com
# ошибки и отчеты отправлять на адрес
mailtoreport = skif@xxx.ua
# Подстрока, которая должна присутствовать в поле Subject письма,
# забираемого с POP3 сервера
subject = URBD-FONDU
# Папка куда будут сохраняться получаемые вложения (с указанием имени файла)
pathtosave_folder = D:\\1c_dbs\\Buch\\1sbukr\\pc\\
pathtosave_files = FONF.zip
# Папка откуда будут браться отправляемые вложения (в имени файла не должно
# быть запятых!!!)
pathtosend_folder = D:\\1c_dbs\\Buch\\1sbukr\\cp\\
pathtosend_files = FONE.zip
#################################################
# Настройки непосредственно для 1С
# ================= for 1C ====================
#
# Путь к исполняемому файлу 1С
pathto1c = C:\\Progra~1\\1Cv77adm\\bin\\1cv7sa.exe
# Имя базы 1С
name1cbase = FONDU-FISHKA
# Расположение базы 1С (путь)
path1cbase = D:\\1c_dbs\\Buch\\1sbukr
# Путь к временной папке
pathtotmp = E:\\scripts\\1c_exch\\TMP
# расположение PRM файла для пакетного режима 1С
prmfile = E:\\scripts\\1c_exch\\tmp\\fishka_fondu.prm
# Расположение файла отчета о работе пакетного режима
logfile = E:\\scripts\\1c_exch\\log\\fishka_fondu.log
# Имя пользователя на базу 1С
user1c = URBD
# пароль пользователя на базу 1С
pass1c = urbd
А вот что дает вывод с чтения всех переменных(у меня ложиться в лог и шлеться по почте отчет):
Result of autoexchange in the attache. Date Wed Sep _7 09:31:34 2005
Wed Sep _7 09:31:24 2005 Variable for URBD script:
________________CONFIG : e:\\scripts\\1c_exch\\etc\\urbd.conf.fondu
________________POP3 state : 1
________________SMTP state: 1
________________POP3 Server : 10.0.43.1
________________SMTP Server : 10.0.43.1
________________POP3 PORT : 110
________________SMTP port : 25
________________POP3 User urbd.fishka
________________POP3 Password olk
________________POP3 Authentificate mode : _PASS
________________MAIL recive From : urbd.fondu@xxx.com
________________Mail From : urbd.fishka@xxx2.com
________________MAIL to report : skif@xxx.ua
________________MAIL Subject : URBD-FONDU
________________Path to save (folder) : /tmp
________________Parg to send(folder): /var
________________FILES to send : tmp.zip
________________FILES to save : tmp.zip
________________PATH to 1C : C:\\Progra~1\\1Cv77adm\\bin\\1cv7sa.exe
________________Name 1C base : !Autoprofit
________________Path to 1C base : D:\\1c_dbs\\Buch\\1sbukr
________________Path to TEMP folder: E:\\scripts\\1c_exch\\TMP
________________Path to PRM file : E:\\scripts\\1c_exch\\tmp\\fishka_fondu.prm
________________Path to logfile : E:\\scripts\\1c_exch\\log\\fishka_fondu.log
________________USER 1C : URBD
________________Password to 1C : urbd
________________Path to logfile 1C : E:\\scripts\\1c_exch\\log\\fishka_fondu.log.exch.log
Wed Sep _7 09:31:24 2005 All main variables checked!
Самые интересные параметры: pathtosend_folder, pathtosave_folder есть еще парочка, но понять хотя бы их.
Как видно из конфига они имеет следующий вид(чтение в коде)
my $pathtosave = &read_conf($conf,\'pathtosave_folder\') || \'/tmp\';
$conf_var = "$conf_var\\t\\tPath to save (folder) : $pathtosave\\n";
my $pathtosend = &read_conf($conf,\'pathtosend_folder\') ||\'/var\';
$conf_var = "$conf_var\\t\\tParg to send(folder): $pathtosend\\n";
В теории они должны были бы принять значения
D:\\1c_dbs\\Buch\\1sbukr\\pc\\
D:\\1c_dbs\\Buch\\1sbukr\\cp\\
Как прописано в конфиге:
pathtosave_folder = D:\\1c_dbs\\Buch\\1sbukr\\pc\\
pathtosend_folder = D:\\1c_dbs\\Buch\\1sbukr\\cp\\
Но шиш. Они принимают дефолтные значения, пото му что во всех случаях кроме данного $read_conf возвращает параметр, а в этом нет
Не могу понять почему.
Пните, что упускаю из виду...