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.


Examine what is said, not who speaks.
1) When a distinguished but elderly scientist states that something is possible, he is almost certainly right. When he states that something is impossible, he is very probably wrong.
2) The only way of discovering the limits of the possible is to venture a little way past them into the impossible
3) Any sufficiently advanced technology is indistinguishable from magic.
Arthur C. Clarke.
  • Comment on Re: capturing the numerous hits from a global match into nested data
  • Download Code

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
    Bingo and thank you! What I precisely needed was
    push @{conIDs{$conid}}, $descid;\
    after pulling those two fields from the table. I can can print everything I want to know, so the rest of the nesting must be working.

    In less than 50 times the number of minutes it took you to figure out what I was asking, dummy up a random array, and write the code, I was able to solve this :)