Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Общие вопросы > зараза не метчит одинаковые стринги


Автор: xtrasns 8.1.2008, 09:01
вот собсвенно скрипт. Все вроде сходится, а метча нет ....

при идее он должен писать Y, a он пишет 

здесь был код но я его удалил )

Автор: sir_nuf_nuf 8.1.2008, 11:32
чем то похоже на спагетти =)

в твоем случае
url  -  'walw.ru/finpr/index.php?12'
link -  'walw.ru/finpr/index.php?12'

ты делаешь 
Код

if($link =~ /$url/)


т.е.
Код

if('walw.ru/finpr/index.php?12' =~ 'walw.ru/finpr/index.php?12')


конечно это не будет работать.

может тебе нужен простой  eq ? а не поиск по шаблону ?
например
Код

if($link eq $url) { 
    $occurance = 'Y'; print "Y\n"; 
} else { 
    print "N\n";
} 

Автор: ginnie 8.1.2008, 11:35
Уважаемый xtrasns, думаю, что
Код

warn $content

после 28-й строки многое прояснит.

Есть подозрение, что русские символы в запросе надо преобразовать в соответствии с rfc (как вариант, смотри URI::Escape) и указать кодировку запроса в функции get() (смотри LWP::UserAgent).

Автор: nitr 8.1.2008, 14:22
xtrasns, вам изначально сюда
http://forum.vingrad.ru/act-boardrules.html

Цитата(ginnie @  8.1.2008,  11:35 Найти цитируемый пост)
Есть подозрение, что русские символы в запросе надо преобразовать в соответствии с rfc (как вариант, смотри URI::Escape) и указать кодировку запроса в функции get() (смотри LWP::UserAgent).

это немного решалось в "соседнем" топике
http://forum.vingrad.ru/index.php?showtopic=190102

Автор: xtrasns 8.1.2008, 19:24
я боюст что проблкма не в этом. Другой запрос прогамма хавает, а этот - нет ... Хотя обращаются к тому-же Яндексу. Не может - же яндекс выдавать на 2 хапроса разные кодировки 

И при чем тут правила форума ? Какой пункт я нарушил ?

Автор: ginnie 8.1.2008, 19:32
Уважаемый xtrasns, странно, но мне казалось что http://go.mail.ru это совсем не Яндекс  smile

Если не сложно, опиши, что скрипт по твоему делает, тогда будет сильно проще тебе помочь, а так, разбираться в "своеобразном" коде нет особого желания  smile 

Автор: nitr 8.1.2008, 19:48
Попробуйте включить "логирование" и деббагер к библиотеке LWP.
Код
use LWP::Debug qw(+);

perldoc LWP::Debug
и "самопальный" лог тоже можно задействовать. Так будет проще находить ошибки в будущем.

[offtopic]
Цитата(xtrasns @  8.1.2008,  19:24 Найти цитируемый пост)
И при чем тут правила форума ? Какой пункт я нарушил ?

№1 и "негласный" smile что "то что вы пишите, должно отражать суть вопроса".

Это сложно понять, после того как вам ответили, возникают доп.вопросы smile Как считаете это верно?

Автор: xtrasns 8.1.2008, 20:36
Джинни,

скрпит делает запрос к яндексу. Если в выдаче есть опреденные сайты он их сравнивает с тами что указаны в скрипте.  В данном случае сайт - "http://walw.ru/finpr/index.php?12" есть в и в срипте и в яндексе, а меч не работает. Но  именно при это запросе. .при доугих работает.

Нуф нуф !!! А вот как раз работает 

Код

#!/usr/bin/perl

use locale;
use Encode;
use strict;

my $a = "c";


if($a =~ /c/){
    print "rabotaet \n";
}else{
    print "fig tebe \n";
}


nitr , буду вырахаться яснее ! )

Автор: nitr 8.1.2008, 21:09
xtrasns, ошибочка smile))
Код
#!perl
my $url = 'walw.ru/finpr/index.php?12';
my $link = 'walw.ru/finpr/index.php?12';
if( $link =~ /$url/ ) {
    print "ok";
}

Цитата
c:\>1.pl

c:\>


работает ваш код, но надо всё же вспомнить вам регеспы и т.п.
Код
#!perl
my $url = 'walw.ru/finpr/index.php?12';
my $link = 'walw.ru/finpr/index.php?12';
if( $link =~ /\Q$url\E/ ) {
    print "ok";
}

Цитата
c:\>1.pl
ok
c:\>

Экранировать надо!

Проверяйте!

Автор: xtrasns 8.1.2008, 21:46
спасибо, заработало !!!

Автор: nitr 10.1.2008, 10:54
xtrasns, считаю что вас надо "предупредить" за такие действия!
Первое - топик потерял суть свою, второе - вы всё время это делаете, третье - и притом специально!

Это диструктивные действия по отношению к "форуму", к людям.

Автор: korob2001 13.1.2008, 13:46
xtrasns - настоятельно тебя прошу, изменить название темы.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)