Forum Webscript.Ru

Программирование => Perl => Тема начата: GrinD3rZ от 21 Июля 2005, 08:34:54

Название: Smiles
Отправлено: GrinD3rZ от 21 Июля 2005, 08:34:54
Пишу гостевуху на perl, но есть проблемка! Вот кусок скрипта прикручивающего смайлики:

Цитировать

@images=("smile.gif","frown.gif","redface.gif","biggrin.gif","wink.gif",
"tongue.gif","cool.gif","rolleyes.gif",
"mad.gif","eek.gif","confused.gif");

$img0=$images[0];
$src0="$path$img0";
$img1=$images[1];
$src1="$path$img1";
$img2=$images[2];
$src2="$path$img2";
$img3=$images[3];
$src3="$path$img3";
$img4=$images[4];
$src4="$path$img4";
$img5=$images[5];
$src5="$path$img5";
$img6=$images[6];
$src6="$path$img6";
$img7=$images[7];
$src7="$path$img7";
$img8=$images[8];
$src8="$path$img8";
$img9=$images[9];
$src9="$path$img9";
$img10=$images[10];
$src10="$path$img10";

@pairs = split(/&/, $query);
foreach $pair (@pairs)
{
($name, $value) = split(/=/, $pair);
$value=~s/:)//g;
$value=~s/:(//g;
$value=~s/:o//g;
$value=~s/:D//g;
$value=~s/;)//g;
$value=~s/:p//g;
$value=~s/:cool://g;
$value=~s/:rolleyes://g;
$value=~s/:mad://g;
$value=~s/:eek://g;
$value=~s/:confused://g;
$input{$name} = $value;
}

Но когда я проверяю его из консоли, на наличие ошибок выдает:
Цитировать

root@home:/usr/local/apache2/cgi-bin:# ./gbook.cgi
Unmatched ) in regex; marked by <-- HERE in m/":) <-- HERE "/ at ./gbook.cgi line 44.

А в браузере ошибку 500, подскажите где ошибка???
Название: Smiles
Отправлено: Ivan Kolesnikov от 21 Июля 2005, 10:44:58
Все дело в том, что в regex ( и ) служебные символы (есть и другие, но здесь ошибка именно из-за них), напиши:

$value=~s/:\\)//g;
$value=~s/:\\(//g;
Название: Smiles
Отправлено: GrinD3rZ от 21 Июля 2005, 13:10:23
Сенкс, попробую...