Article View: pl.comp.lang.perl
Article #1396Re: Nietypowy Search Engine
From: Przemyslaw Popielarski
Date: Thu, 14 May 1998 19:28
Date: Thu, 14 May 1998 19:28
66 lines
3669 bytes
3669 bytes
Qrczak napisał(a) w wiadomości: ... >> open (PLIK, "$pliklog") || die "Nie moge otworzyc pliku: $pliklog\n"; >Wydaje mi się, że zamiast die lepiej to wypisać w tym HTMLu, >prawda? Niewatpliwie tak zrobie, i zrobil bym tow czesniej, gdybym to ja pisale te linijke. Szczerze mowiac, nie wiem nawet co robi 'die', a takze co daje ||... Przypuszczam, ze chodzi o to, ze jesli otworzenie pliku nie powiedzie sie, to wypisuje komunikat. >Akurat na rekord użyłbym bezpośrednio zmiennej $_. Tak więc: [...] >Flaga /o jest tutaj _bardzo_ przydatna - powoduje, że wyrażenie >regularne będzie skompilowane tylko raz, a nie przy każdym użyciu, co >powinno znacząco przyspieszyć. Flaga ta jest sensowna tylko jeśli >wyrażenie regularne formalnie nie jest stałe, ale skądinąd wiemy, że >wszystkie zmienne tam użyte się nie zmienią - tak jak tutaj. >Bo oczywiście jest to perlowe wyrażenie regularne, a nie kawałek tekstu. >Użytkownik powinien to wiedzieć. Jeśli miałby być wyszukany tylko >kawałek tekstu, to można by go zapisać tak: /\Q$szukane/io (zobacz >linuksowy man perlre). Z tym że część osób potrafi z wyrażeń regularnych >skorzystać, więc głupio by było taką możliwość niepotrzebnie zabierać. >Za to trzeba by się jakoś zabezpieczyć przez błędami składni w takim >wyrażeniu, bo skrypt się posypie. Chyba można wstępnie przetestować >to wyrażenie regularne wewnątrz eval, co pozwoli złapać błędy jego >składni podczas wykonania, nie przerywając działania skryptu Kurcze, Qrczak, z tego ww. kawalka nic tak naprawde nie rozumiem. >IMHO prościej czytać tutaj na bieżąco z pliku. Dodatkowo nie będziemy >czytać całego pliku, jeśli będzie tego więcej niż 30. O! I to jest 100% argument nie do pobicia. Nie wpadlem na to. O dziwo zreszta, takie czytanie po linijce dziala duzo duzo szybciej! Przeszukuje mi te 34000 rekordow w mig, a przedtem potrzebowal kolo 5 sekund! >> Ale moj problem jest troche zlozony... >IMHO nie jest :-) Dla mnie jest :( I im bardziej sie wglebiam w ten jezyk, tym go mniej rozumiem. Coz, ide studiowac te many. Dzieki wielkie Qrczak, bardzo mi pomogles. Aha, na koniec mam jeszcze jedno pytanko: poniewaz korzystam z Twojej metody czytania linijek tylko do jakiejs tam wartosci (30), to nie wiem, ile plik ma linijek. Czy jest metoda, aby sprawdzic ile plik ma linijek _natychmiastowo_ ? (bez wczytywania go calego do pamieci). Chodzi o to, ze chce wypisywac *przed* wyszukiwaniem, ile jest dostepnych rekordow. Chce, zeby ta informacja pojawiala sie bez opoznien. Ale jesli sie nie da, to nic. Nie jest mi to niezbedne... ./ premax ./ abe@ikp.pl, premax@abe.com.pl ./ uin 9022511 ./ koniec i bomba, a kto czytal ten traba. w.g.
Technical Details
Message-ID:
<6jfp5c$oq2$3@sunsite.icm.edu.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!news.icm.edu.pl!not-for-mailReferences:
<6j5bve$gql$1@sunsite.icm.edu.pl> <6j7lmm$591$1@galaxy.uci.agh.edu.pl> <6j9e4m$sol$1@sunsite.icm.edu.pl> <Pine.LNX.3.96.980512174353.25001D-100000@qrnik.knm.org.pl> <6jaefe$e5b$1@sunsite.icm.edu.pl> <Pine.LNX.3.96.980514085251.11352G-100000@qrnik.knm.org.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!news.icm.edu.pl!not-for-mail From: "Przemyslaw Popielarski" <abe@ikp.pl> Newsgroups: pl.comp.lang.perl Subject: Re: Nietypowy Search Engine Date: Thu, 14 May 1998 21:28:39 +0200 Organization: http://news.icm.edu.pl/ Lines: 69 Message-ID: <6jfp5c$oq2$3@sunsite.icm.edu.pl> References: <6j5bve$gql$1@sunsite.icm.edu.pl> <6j7lmm$591$1@galaxy.uci.agh.edu.pl> <6j9e4m$sol$1@sunsite.icm.edu.pl> <Pine.LNX.3.96.980512174353.25001D-100000@qrnik.knm.org.pl> <6jaefe$e5b$1@sunsite.icm.edu.pl> <Pine.LNX.3.96.980514085251.11352G-100000@qrnik.knm.org.pl> NNTP-Posting-Host: ppp4-170.warszawa.tpnet.pl X-Newsreader: Microsoft Outlook Express 4.72.2106.4 X-MimeOLE: Produced By Microsoft MimeOLE V4.72.2106.4 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit