как в перле удалить повторы строк в файле с 5 миллионами строк(500МБ+). В перле совсем не куку, поэтому был бы признателен за полный "рабочий" код.
#Wolf# функция для удаления дубликатов: Code: sub unique_arr { my %uniq = (); my @uniq_arr = (); foreach my $item (@_) { unless ($uniq{$item}) { push @uniq_arr, $item; $uniq{$item} = 1; } } return @uniq_arr; }
Code: #!/usr/bin/perl use List::MoreUtils qw(uniq); open(ACCS,"accs.txt") || die "File not found"; @strings=<ACCS>; @dup=@strings; @uniq_list=uniq(@dup); print join(' ',sort(@uniq_list)); open(ACCS_,">accs_.txt"); print ACCS_ (join('',sort(@uniq_list))); close(ACCS); close(ACCS_); open(ACCS_,",<accs_.txt"); $line=@uniq_list; $line++ while<ACCS_>; close(ACCS_); print qq(How many Lines?________); print ( $line,"\n"); sleep(10); на коленях накидал.. коряво как-то но работает.. тоьько долго будет 500 мб в оперативу грузить) дополнительный модуль нужен List::MoreUtils . "accs.txt" - поменяешь на свое..
Недавно появилась мысля накодить что-нибудь для контакта. Начал ессно с авторизации. Вот код: Code: #!C:/Perl/bin/perl.exe use CGI qw(:all); use LWP::UserAgent; use HTTP::Request; use HTTP::Cookies; $login = "[email protected]"; $password = "CoolPass"; $ua = LWP::UserAgent->new('Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.6.30 Version/10.61'); $ua->cookie_jar(HTTP::Cookies->new(file => 'cookie.txt', autosave => 1)); $req = HTTP::Request->new(POST => 'http://login.vk.com/?act=login'); $req->content_type('application/x-www-form-urlencoded'); $req->content("email=".$login."&pass=".$password); #$req->header('Content-type: text/html; Charset=windows-1251'); push @{$ua->requests_redirectable}, POST; $res = $ua->request($req); print header(); print $res->as_string; он исполнялся, но контакт возврпащал страницу "wrong pass", там он вывел неверный логин,пароль, вся фигня, и в поле email вписал емейл, НО вместо [email protected] вписал user.ru(типа @ это нуль-байт). Стоило изменить @ на %40, как все заработало. Находясь в небольшом ступоре переписал код на php: PHP: <?php $login = "[email protected]"; $password = "CoolPass"; $ch = curl_init(); curl_setopt($ch,CURLOPT_URL,"http://login.vk.com/?act=login"); curl_setopt($ch,CURLOPT_POST,1); curl_setopt($ch, CURLOPT_COOKIEFILE, "cookie.txt"); curl_setopt($ch, CURLOPT_COOKIEJAR, "cookie.txt"); curl_setopt($ch,CURLOPT_FOLLOWLOCATION,1); curl_setopt($ch,CURLOPT_POSTFIELDS,"email=".$login."&pass=".$password); curl_setopt($ch,CURLOPT_FOLLOWLOCATION,1); curl_exec($ch) or die("execution error"); curl_close($ch); ?> Он без проблем направил меня куда надо. Собственно вопрос: Почему Perl(ActivePerl) @ понимает только в виде %40, а php понимает нормально?
вопросец. кк в перл загрузить фото на сервер? допустим аву вконтакте? и еще опрос. как семитировать включеный джаа скрипт браузера? и еще один, вот код аторизации в пайпал. но почемуо не авторизирует , кидает на страницу редиректа. а дальше , пишет чо нужно вести мыло и пароль. поле мыла запослено пароля пустое. но переменую пароля передаю правельно. в чем проблема?
SHiNiGaMi, это из-за двойных кавычек (у тебя подставляется переменная @mail). Сравни HTML: print "[email protected]"; и HTML: print '[email protected]';
загружаешь вручную смотришь какие данные передаются на сервер.. исходи из данных подставляешь. тоже самое что и при авторизации.. вот пример загрузки авы на фотострану.. Code: my $res = $ua->post('http://fotostrana.ru/profile/settings/save/', Content_Type => 'form-data' , Content => [ 'newUserPhoto' =>['./img/'.$nfile] , 'filename' => $nfile , 'Content_Type' => 'image/jpeg'] )->as_string; ищи откудо берется эта переменная после dispatch=. походу это какой-то хеш или хз..
ето не переменая. ето постояный адрес при автризации. на класной странице весит ,исходя из даных вегда и делаю. просто отку не когода не грузил по етому не знаю
не получается( еще вопросец есть сайт sprashivai.ru , капча вылазит часто. но не могу получить капчу чтобы передать на антигейт. там походу javascript . тк на странице в коде нету путя к капче. где сама картинка знаю. но в пусть нжно указать phpsessid , а вот он гдето спрятан. не могу его выдернуть, прошу помощи
еслиб получилось не спрашивал бы. Вопрос 1 есть сайт sprashivai.ru , капча вылазит часто. но не могу получить капчу чтобы передать на антигейт. там походу javascript . тк на странице в коде нету путя к капче. где сама картинка знаю Code: http://sprashivai.ru/data/captcha/?PHPSESSID=1a8qd0aqqb8vq5jtqrdptsfbm7&r=2360 . но в пути нужно указать phpsessid , а вот он где то спрятан. не могу его выдернуть, прошу помощи. Вопрос 2 вот код аторизации в пайпал. но почему то не авторизирует , кидает на страницу редиректа. а дальше , пишет что нужно вести мыло и пароль. поле мыла заполнено пароля пустое. но переменную пароля передаю правильно. в чем проблема? Вопрос 3 как в perl сымитировать включенный javascript браузера или как авторизоваться тут igra3k.ru вот мой код. но возвращаeт что Js не включен.помогите аторизироватся больше переменых там нету. Вопрос 4 авторизация скайпа. куки включены. все как обычно. но в ответ мне скайп выдает . мол включите куки. помогите решить проблем ку вот код. Вопрос 5 авторизация анигейт.ком, мне в ответ вообще пустая страница шлется, все переменные передаю которые передает браузер. Вопрос 5 авторизация миртесен та же фигня авторизация не проходит. в чем проблема сам не могу понять(передаю все необходимые переменные.
вопроспять) авторизация на мир тесен. вот тебе рабочая авторизация 100% Code: my $aut = $ua->post('http://mirtesen.ru/login', [ 'auth[login]' => $mail, 'auth[password]' => $pass, 'auth[remember' => 'on' , 'auth[backurl]' => 'http://mirtesen.ru/'])->code; только внимательнее там иногда капча лезит после авторизации. определяю по ответу if ($aut == 302 ) {гуд}
спасибо работает. видно нужно было не кодированое слать " []" , капча там лезит после авторизации? или во время?чтобы валид не пропускало
не успел запихнуть 100 аков на чек. уже капча. и не после а во время авторизации.так что через 302 не получится чекать. нужно еще и капчу водить)