Forum Webscript.Ru
Программирование => Perl => Тема начата: Inecs от 22 Марта 2006, 17:36:29
-
Вообщем есть подпрограммка:
sub moduleconf_reader {
# Открываем конфигурационный файл модуля
open (moduleconf,"config/moduleconf.cfg") || die "Немогу найти конфигурационный файл модуля";
my (%moduleconf);
while () {
chomp; # удаляем перевод строки
s/#.*//; # убираем комментарии
s/^\\s+//; # убираем начальные пробелы
s/\\s+$//; # убираем конечные пробелы
s/\\\\</g;
s/\\>/\\>/g;
s/\\"/\\"/g;
s/:/\\&\\#58;/g;
s/\\\'/'/g;
s/\\`/`/g;
next unless length; # проверяем, не осталось ли чего
my ($var, $value) = split(/\\s*=\\s*/, $_, 2);
$moduleconf{$var} = $value;
}
close (moduleconf);
return (%moduleconf);
}
Выдаёт такую ошибку:
Unquoted string "moduleconf" may clash with future reserved word at E:/www/czone/cgi-bin/users/auth.pl line 100.\\r
Unquoted string "moduleconf" may clash with future reserved word at E:/www/czone/cgi-bin/users/auth.pl line 118.\\r
Я немогу понять, что не так. В чём ошибка?
-
open (moduleconf,"config/moduleconf.cfg")
просто для дескрипторов файлов рекомендуют давать названия большими буквами, то есть:
open (MODULECONF,"config/moduleconf.cfg")
-
Ок спасибо...
А вот ещё что. Есть подпрограммка:
#------------------------------------------------------------------------------#
# Подпрограмма определения, от куда пришёл пользователь
#------------------------------------------------------------------------------#
# Вывод данных
# my ($user_referer, $user_from_site) = user_from_site();
sub user_from_site {
# Определяем от куда пришёл к нам пользователь
my $user_referer=$ENV{HTTP_REFERER};
my $site_domain=$siteconf{site_domain};
my $user_from_site = $user_referer =~ m|$site_domain|;
if ($user_from_site eq "1") {
$user_from_site="1"; # Если пользователь пришёл с нашего сайта
} else {
$user_from_site="0"; # Если пользователь пришёл от куда-то ещё
}
return ($user_referer, $user_from_site);
}
И ругается вот как:
Use of uninitialized value in pattern match (m//) at E:/www/czone/cgi-bin/users/auth.pl line 283.\\r
283 линией является строка:
my $user_from_site = $user_referer =~ m|$site_domain|;
-
а, если нет $ENV{HTTP_REFERER} ? :)
my $user_from_site = $ENV{HTTP_REFERER} ? $ENV{HTTP_REFERER} =~ m|$site_domain| : \'unknown \';
-
Inecs
$user_from_site="0"; # Если пользователь пришёл от куда-то ещё
На это он тоже будет ругаться, точнее после этого...
sub user_from_site {
if ($ENV{\'HTTP_REFERER\'} && $ENV{\'HTTP_REFERER\'} =~ /$siteconf{\'site_domain\'}/) {return \'our\'}
else {return \'other\'}
}