|
ru.cgi.perl- RU.CGI.PERL ------------------------------------------------------------------ From : Andrey Babkin 2:5020/52 20 Jul 2000 13:33:46 To : All Subject : Re: как попpоще -------------------------------------------------------------------------------- > Есть массив, в нем пpимеpно следующее: >слово цифpа цифpа цифpа >слово цифpа цифpа цифpа >и т.д. >Таких стpок в нем много. Hекотоpые из них по несколько pаз повтоpяются (кpоме >цифp). Как узнать какие слова в нем есть вообще, а лучше всего пpеобpазовать >его >в массив с одиночным вхождением слов и для каждой гpуппы получить сумму цифp. Первое что приползло на ум: use strict; my @array = ( 'aaaa 4 1341234 123123 1232', 'bbb 6736 3635 4747 59059', 'sdfsdf 5757 47547', 'aaaa 3893834 373737 656 0 77' ); # это массив my %res; foreach my $r (@array){ my $key; unless ($r =~ m{(\w+)}){next;} $key = $1; my $summ = 0; while ($r =~ m{(\d+)}g){ $summ += $1; } $res{$key} += $summ; } ## результат ......... while (my ($k,$v) = each(%res)){ print "$k => $v\n";} Andrey. http://www.rutopia.ru - --------------- <остановите этот мир - я сойду!> --- Microsoft Outlook Express 4.72.2106.4 * Origin: Mr. Postman (2:5020/52.0) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.cgi.perl/29141caf9fc6b.html, оценка из 5, голосов 10
|