in reply to capturing the numerous hits from a global match into nested data
Congratulations! You win the prize for the Most-Confusing-Question Award:)
If I understand you correctly, this may get you started.
#! perl -slw use strict; use Data::Dumper; sub rndStr{local $"=''; "@_[map{rand @_} 0 .. shift]"; } #!" my @lines; push @lines, "desc$_\tconid@{[int rand 10]}\t". rndStr(30, map chr, 32 + ..255) for 1..100; my (%lineChars, %totalChars, %conIDs); for (@lines) { my ($descID, $conID, $string) = split /\t/; print "$descID, $conID, '$string'"; push @{$conIDs{$conID}}, $descID; my %nonASCII; $nonASCII{$1}++ while $string =~ m[([^\x01-\x7f])]cog; $lineChars{$descID} = [ keys %nonASCII ]; $totalChars{$_} += $nonASCII{$_} for keys %nonASCII; } print Dumper \%conIDs, \%totalChars, \%lineChars;
I've just generated some random data into an array to test it with.
The output of the for (which would probably be a while(<>) loop in your case), is three hashes.
Of course it's quite probable that I've completely misread you and this is nothing like what your after, but it might suggest some ideas to you.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Re: capturing the numerous hits from a global match into nested data
by jjohhn (Scribe) on Mar 04, 2003 at 05:42 UTC |