потому, что захваченные значения сохраняются в спец. переменных , т.е. $1 - является первым совпадением. http://www.citforum.ru/internet/perl_tut/re.shtml
помогите авторизироваться на mate1.com (хочу попробовать написать чекер акков) use LWP 5.64; use LWP::Simple; $browser = LWP::UserAgent->new; open (FFF,">>xui.htm"); $url='http://mate1.com/index.php'; $content= get $url; $content=~/(sid=\w{1,})/g;; $sid=$1; $sid=~s/sid=//; print $sid; $mail="*********"; $posturl="http://www.mate1.com/profiles/login?sid=$sid"; print $posturl; $response = $browser->post( $posturl, [ sid=>$sid, email_address => $mail, password => "********", ], ); $url_home='http://www.mate1.com/profiles/home'; $cnt2=get $url_home; print FFF $cnt2;
Code: #!perl -w use strict; my %h = ( NAME1 => 'Kaimi', NAME2 => '$p01nt', NAME3 => 'ZET36', ); my $s_h = '$p01nt'; foreach ( keys %h ) { exit print "Key name : '$_'" if $h{$_} eq $s_h; } print 'Not Found'; ежели я всё верно понял...
demonoid хех код выдаёт ошибку. я тоже пробывывал неполучается Code: %hash = ( 'zalupa1' => 'malenkaya', 'zalupa2' => 'srednyaya', 'zalupa3' => 'bolshaya' ); foreach ( keys %hash ) { if($hash{$_}='bolshaya'){print $_;} } блин циклы в перле ведут себя не так как в пхп и джаваскрипте
Неподскажите как экранировать "\" в функции split пример Code: $fullitself="gggg\ddddd\zzzzz\rrrrrr"; @temp=split('\',$fullitself); print @temp[1]; я уж и chr() пробывал Code: $fullitself="gggg\ddddd\zzzzz\rrrrrr"; @temp=split(chr(92),$fullitself); print @temp[1]; ничего не помогает.
При двойных кавычек строка интерполируется , интерпретатор не может понять эскейп последовательность \d и \z Code: $fullitself='gggg\ddddd\zzzzz\rrrrrr'; @temp=split(/\\/,$fullitself); print $temp[1];
Ещё один вопрос. как сделать что бы в цикле переберались файлы а в ключи хеша заносились имена файлов а в значение хеша их содержимое я пробывал так .например (где в массиве @files содержатся пути файлов) Code: foreach ( @files ) { open(LOGFILE, '<', $_); $zet{$_}=<LOGFILE>; } но в значения хеша заносятся только первые строчки файлов а не всё их содержимое. я знаю что <LOGFILE> открывается массивом в котором скажем 1вая строчка файла = @massiv[0] итд. но вот как в значения хеша записать всё содержимое массива? ведь нельзя применить sort() к <LOGFILE> как к массиву буду благодарен
Code: #!perl -w use strict; my %h; my @files = ( 'FILE2.txt','FILE1.txt','FILE3.txt' ); foreach my $key ( @files ) { next unless -r $key; open( LOGFILE,"<$key" ); while( <LOGFILE> ) { $h{$key} .= $_; } close LOGFILE; } К чему здесь sort я не понял ..
demonoid в 4 раз выручаеш спасибо)) а sort() я хотел использывать что бы перевести массив в строку и присвоить её значению хеша без использовании второго цикла