🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.perl
1 messages
1 total messages Started by piecia aka draco Sun, 29 Jan 2012 15:08
Wyszukiwanie w =?iso-8859-2?b?s2HxY3VjaHU=?= a flaga /g
#51256
Author: piecia aka draco
Date: Sun, 29 Jan 2012 15:08
35 lines
1169 bytes
Witam
Mam �a�cuch utworzony z polecenia:
#v+
$lanuch = join "\n",@tablica;
#v-
@tablica zawiera list� plik�w.

Wyszukuj� w tym �a�cuch nazw plik�w przez:
#v+
$lanuch =~ m{^\Q$nazwa_pliku\E$}xms
#v-
I dzia�a. Je�li jednak dodam flag� /g �eby m�c odczyta� pozycj� po
ostatnim dopasowaniu, za pomoc� funkcji pos(), to przestaje mi wyszukiwa�.

Pytanie dlaczego? Perl 5.14.2.

Co ciekawe, wcze�niej mia�em jako� inaczej skonstruowany kod i z flag� /g
dzia�a�o mi to. Delikatna zmiana kodu powodowa�a, �e �a�cuch nie by�
dopasowywany. Jak znajd� ten fragment to pode�l�.

Przy okazji jak mog� przy�pieszy� wyszukiwanie w d�ugim �a�cuchu lub
du�ej tablicy?
Tablica zawiera 514058 wierszy i pod postaci� pliku zajmuje 27MB.
A sprawdzane s� pliki, dok�adnie nazwy plik�w, zwr�cone przez funkcj� find
z File::Find.

Przy niewielkich tablicach szybsze by�o wyszukiwanie grep/first. Ale przy
tej najlepiej mi si� sprawdzi�o przerobienie do �a�cucha i szukanie po
wyra�eniach ale zakotwiczonych(^$).


--
piecia aka dracorp
pisz na: piotr kropka rogoza at wp kropka eu

Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads