perl operacje na pliku

0

Witam pisze cgi w perlu i jetem w miejscu gdzie w pliku na serwerze robię listę logowań( wprowadzona nazwa i ilość wejść) i tu mam pytanie ktoś ma jakąś propozycje jak rozwiązać problem że mam np w pliku "Tomek 28 logowań" i gdy znajduje Tomek to zmienia tylko liczbę logowań

0

szukam pomocy z ustawienie maski w perlu

$imie.*@ - tak ma na chwile obecną ale w czasie podmiany tej maski innym słowem zamienia tez wszytko co jest dalej w tej linijce

$imie to wprowadzane imię a chce aby maska była od tego słowa do znaku @

0

rzuciłbyś 3 linijkami kody zamiast tak "o" opisywać, bo cięzko załapać, nie mówiąc, że w pierwszym poście było o tomku , a teraz o małpach :P

0
if($lista=~/$imie/)
	{
	open (PLIK, ">/home/bar/lista.txt");
	$lista=~s /$imie.*@/$imie : $razy logowan : $ip ip @ /gi;

	print PLIK "$lista";
	close(PLIK);
}

chodzi o to aby znaleziona maskę zamieniło na imię liczna logowań adres ip
postac jest taka Adam : 14 logowan : 192.168.1.1 ip @
i aby maska obejmowała tylko to składnie od imienia do pierwszego znaku @ bo mi podmienia od imienia i wszystko co jest zapisane dalej (inne zapisy logowan)

0

Twój przykład nie wydaje się mieć sensu..

nie znam się na perlu, klepię to co znalazłem w googlach i to co wyniosłem z innych języków, spróbuj to:
$lista =~ s/(.*) : ([0-9]+) logowan : ([0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}) ip @/$1 : PODMIANA logowan : $3 ip @/gi;

nie wiem jakby tu zrobić inkrementację od razu na regex replace (w php raz takie cos pisalem, nie chce mi sie szukac i zastanawiac czy dalbym rade przeportować to do perla, zreszta calosci Ci robic nie bede), więc zrób match - wybierz ilość logowań do zmiennej, zinkrementuj, i podstaw zamiast PODMIANA, ale zielonego cielęcia nie mam czy tak ruszy, czy musisz zrobić coś magicznego, żeby wepchać zmienną do tego stringa docelowego.

0

ok ruszyło thx

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.