|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Oleg Kuznetsov 2:5011/139 15 Apr 2003 18:08:58 To : Ruslan Sulemanov Subject : подскажите -------------------------------------------------------------------------------- 15 апр 03 08:04, you wrote to me: RS> * Forwarded from area 'RU.PERL' OK>>>> как сделать проверку на перле AA>>> exists $plist{$msg{num}}; OK>> сделал так OK>> open(LST,"< $cfg{lst}") or die "can't open $cfg{lst}"; OK>> while ( <LST> ) { OK>> if (/^point,(\d+)/i){ OK>> %lst = $1; RS> ^^^^^^^^^^ - здесь ошибка... RS> проверяешь на значение, а значение что ошибка там я знал, так как при perl -w мне лаского обяснили :) RS> yпyскаешь. OK>> if (exists $lst{$msg{num}}){ RS> ^^^ - ключ num статический? RS> вроде здесь надо $1.. нет мне над было сравнить хешь с переменной $msg{num}, полученной из др хеша: open(MSG,"< $cfg{msg}") or die "can't open $cfg{msg}"; my (%msg)=(); while(<MSG>){ $msg{fn}=$1 if /^name:\s+(\w+)\s+(\w+)$/i; $msg{ln}=$2 if /^name:\s+(\w+)\s+(\w+)$/i; $msg{num}=$1 if /^point:\s+(\d+)$/i; $msg{st}=$1 if /^station:\s+(\S.*)$/i; $msg{pwd}=$1 if /^password:\s+([\S+]{1,8})$/i; $msg{ph}=$1 if /^phone:\s+([+\d][\d\-W]+)$/i; } close(MSG); OK>> print "found\n"; OK>> } OK>> else OK>> { OK>> print "not found\n"; OK>> } OK>> } OK>> } OK>> close(LST); RS> Объясните что должен скрипт делать, может помогy... над было найти поинта в поинтсегменте и если есть выдать 1 если нет 0 уже сам сделал open(LST,"< $cfg{lst}") or die "can't open $cfg{lst}"; my $pnt; while ( <LST> ) { $pnt = grep(/^point,$msg{num},/i,<LST>); } close(LST); print "Point already exist\n" if ($pnt eq 1); Oleg ... Xmms play: System Of A Down - Boom! --- GoldED+/BSD 1.1.5 (FreeBSD 4.8-STABLE i386) ! * Origin: 18:08 up 20:47, 4 users, load averages: 0,07 0,12 0,09 (2:5011/139) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/22953e9bf76f.html, оценка из 5, голосов 10
|