пробовал просто выводить содержимое страниц? Навигация вообще происходит или он дальше 1-й страницы не идет? Может имеет смысл еще раз логинется перед получением новой страницы?
demond, с этим разобрался, невнимательность) далее: опять с куками, беру url из списка и перехожу по ней, выдазит ошибка: Code: Can't call method "scheme" on an undefined value at C:/Perl/lib/HTTP/Cookies.pm line 44, <URLS> line 71. Code: sub next{ open(A, ">>a.txt"); open(URLS, "urls.txt"); @urlo = <URLS>; $client = LWP::UserAgent->new( ) or die; $client->agent('Opera/9.0 (Windows NT 5.1; U; en; (R1 1.5))'); $client->cookie_jar( $cookie_jarr ); $answer = $client->get($urlo); foreach $urlo (@urlo) {@qwerty = $answer->content =~ /(.*)/g;} print A join "\n", @qwerty;} а если поодной url типа $answer = $client->get($urlo[1]); то всё норм! где ошибка??
$answer = $client->get($urlo); - а где вообще задана переменная $urlo ? и цикл зачем? просто вывести контент н раз? упд: попробуй strict + warnings упд2: Code: foreach $urlo (@urlo) { $answer = $client->get($urlo); @qwerty = $answer->content =~ /(.*)/g; print A join "\n", @qwerty; } }
Мде, ну и код Code: #!/usr/bin/perl use strict; use warnings; use diagnostics; sub next { open(A, ">>a.txt"); # Принято использовать вид open my $A, '>>', 'a.txt' or die "open() error: $!\n"; open(URLS, "urls.txt"); # open my $URLS, '<', 'urls.txt' or die "Shit, an error: $!\n!"; @urlo = <URLS>; $client = LWP::UserAgent->new( ) or die; $client->agent('Opera/9.0 (Windows NT 5.1; U; en; (R1 1.5))'); $client->cookie_jar( $cookie_jarr ); $answer = $client->get($urlo); # А не будет ли тут Undefined переменной? $urlo не есть @urlo, также не есть его элемент foreach $urlo (@urlo) { @qwerty = $answer->content =~ /(.*)/g; } # тут вообще я упал и не могу встать, массив @qwerty при каждом проходе цикла переписывается. Зачем? Что вообще хотелось получить этой регуляркой? print A join "\n", @qwerty; # А файлы принято закрывать. close $URLS; close $A; } Это вообще должно быть в любом скрипте.
По ходу чтения книги, наткнулся на такую вешь. При запуске программы вылетает ошибка. Вот сам код: Code: !#usr/bin/perl -w $im_thinking_of=int(rand10); print "Введите число от 0 до 9:"; $guess=<STDIN>; chomp $guess; if ($guess > $im_thinking_of) { print "Перебор!\n"; } elsif ($guess < $im_thinking_of) { print "Недобор!\n"; } else { print "Вы угадали!\n"; } Текст ошибки: Code: Can't modify not in scalar assignment at C:\programs\game.pl line 3, near ");"
Еще такой вопрос. Когда запускаю скрипт на выполнение через командную строку, русский язык коряво отображается, как сделать, чтобы нормально отображался.
общий вопрос, к перлу не относящийся. русик xterm Code: http://www.google.com/search?hl=ru&client=opera&rls=ru&hs=Dfw&num=100&q=%D1%80%D1%83%D1%81%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F+xterm&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA&lr= Code: http://www.google.com/search?hl=ru&client=opera&rls=ru&hs=Sfw&num=100&q=%D1%80%D1%83%D1%81%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F+%D0%BA%D0%BE%D0%BD%D1%81%D0%BE%D0%BB%D0%B8&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA&lr= консоль винды: Code: http://www.google.com/search?client=opera&rls=ru&q=%D1%80%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9+%D1%8F%D0%B7%D1%8B%D0%BA+%D0%B2+%D0%BA%D0%BE%D0%BD%D1%81%D0%BE%D0%BB%D0%B8+windows&sourceid=opera&ie=utf-8&oe=utf-8
такой вот вопрос. Как извлечь все слова из каждой строки? Code: #!usr/bin/perl -w open(WORD, "C:/programs/word.txt") || die "$!"; # открываем файл @word=<WORD>; # считываем строки в массив chomp @word; close(WORD); $_/\do+g/; @word=grep length{$_}>4, @words; # поиск слов chomp @words; open(WORDS, ">C:/programs/words.txt") || die "$!"; # запись слов в новый файл if (! Print WORDS "Запись сделана ", @words, "\n") { warn "Ошибка при записи в файл words: $!"; } Close(WORDS);
Code: open(WORD, "C:/programs/word.txt") || die "$!"; # открываем файл my $word = join '', <WORD>; close WORD; my @words = $word =~ /(\w{5,})/g; # поиск слов open(WORDS, ">C:/programs/words.txt") || die "$!"; print WORDS join("\n", @words); close WORDS;
Я в перл новичек (мало что понимаю ,помогите пожалусто ) Я достал недавно Граббер на pl и в приложении был парсер но этот парсер не дописан . Помогите дописать скрипт . (при клике дает ошибку) вот : #!/usr/bin/perl print "===================================\n"; print "=SQL-injection Parser =\n"; print "===================================\n"; open(TT, 'C:\Perl\result.txt'); open(F, '>C:\Perl\result2.txt'); while ($line = <TT>) { $x=index($line, "^"); $z=rindex($line, "^" ); if($x>-1 && $z>-1){ $long=$z-$x; $res=substr($line, ($x+1), ($long-1) print F $res. "\n"; $x=-1; $z=-1; } } print "===================================\n"; print "= DONE =\n"; print "===================================\n"; close TT; close F;
$res=substr($line, ($x+1), ($long-1) в конце поставь ); чтобы получилось так: $res=substr($line, ($x+1), ($long-1));
Маленькиие вопросики: 1.Недавно занимался пхп.Не повредит ли изучение Perl уже заложенным основам РНР(Непривычно,брр). 2.Без применения chomp() проверки всегда оказываются *левыми*,хотя я и не вбивал пробельных символов. Почему ? ЗЫ: Благодарен за любые ответы по делу.Спасибо)