Forum Webscript.Ru
Программирование => Perl => Тема начата: FANTAzeRus от 16 Декабря 2003, 10:55:06
-
Есть написанный мною код:
my %SM=();
my $result=$dbh->prepare("select * from smiles");
$result->execute();
while (my $ln = $result->fetchrow_hashref())
{
$SM{$ln->{\'text\'}}="$ln->{\'file\'}:$ln->{\'alt\'}";
}
while (my($k,$v)=each(%SM))
{
my($f,$a)=split(":",$v);
$im="";
$TEXT =~ s/$k/$im/;
}
Не работает!!! :-( В чем моя ошибка! Может кто подскажет более правильный и быстрый способ замыны смайликов картинками!!!
-
Что пишет? Какие записи в логах? strict, warnings включены? в предпоследней строке изпользуй метасимвол \\Q в рег. выр. Покажи, что выходит в переменной $im. В конце концов попытайся правильно изложить задачу.
-
В том то все и дело что НИЧЕГО!!! Скрипт просто вешается на
$TEXT =~ s/$k/$im/;
Если заремить выполняется но естественного ничего не меняет!
$im все нормально возвращает!
Задача: Скрипт пр попытке замены смайлов на картинки просто вываливается, т.е. В начале скрипта у меня вывод заголовка HTTP а в конце вывод результата скрипта до конца просто не доходит вешается на см выше ....
....
my $T;
print Header();
...
...
$T .= "....";
...
...
print $T;
-
Повторюсь:
ondr:
в предпоследней строке изпользуй метасимвол \\Q в рег. выр.
$TEXT =~ s/\\Q$k/$im/;
-
Пасиб! Усе заработало! А можно небольшой ликбез - что это и как лечит???
-
Это экранирование всего нехорошего, что лежит в переменной $k - в твоём случае.
Вообщем все тут - perldoc perlre