Beefy Boxes and Bandwidth Generously Provided by pair Networks
laziness, impatience, and hubris
 
PerlMonks  

Re: Manipulating data structure

by Ratazong (Prior)
on Aug 16, 2012 at 09:51 UTC ( #987722=note: print w/ replies, xml ) Need Help??


in reply to Manipulating data structure

Hi SerZKO!

Your hash-key does not need to be a static string, but could be constructed on the fly with a variable containing a counter. Check the following example

my %e; my $max = 4; foreach my $nr (1..$max) { $e{"uid_$nr"} = $nr; }
For your problem, you may either add a the number of available UIDs in your data-structure (and use it like the $max in the example above), or you might check with exists whether a specific UID-entry is present in your hash (e.g. if (exists($e{"MEX$nr"}) { ... })

HTH, Rata


Comment on Re: Manipulating data structure
Select or Download Code
Re^2: Manipulating data structure
by SerZKO (Beadle) on Aug 16, 2012 at 17:56 UTC
    Hej Rata and thanks for your reply,

    I've modified my code like this :

    my @entries; my $previouskey = ""; open (KOF, "<$konfil") or die "Kan inte \xF6ppna filen $konfil"; open (NYF, ">$nyfil") or die "Kan inte \xF6ppna filen $nyfil"; flock (NYF,2) or die $!; my $offset = 0; while(<KOF>) { chomp; $value =~ s/^\s*(\S*)\s+$/$1/; unless ($key eq $previouskey || $previouskey eq "") { $offset = 0; } $previouskey = $key; $entries[$offset]{$key} = $value; $offset++; } my @sorted = sort { $a->{'NYTT'} <=> $b->{'NYTT'} } @entries; my $pers =0; my $Za=1; #####Added foreach my $e (@sorted) { print NYF ($e->{'UID'}, "|", $e->{'FNA'}, "|", $e->{'ENA'}, "|", $ +e->{'PRE'}, "|", $e->{'NYTT'}, "|", $e->{"PRI$Za"}, "|", $e->{"FOR$Za +"}, "|", $e->{"CMG$Za"}, "|", $e->{"MEX$Za"}, "\n") if( $e->{"UID"} n +e "" || $e->{"FNA"} ne "" || $e->{"ENA"} ne ""); $pers++ if ($e->{"UID"} ne ""); $Za++; #####Added } close KOF; close NYF;
    but I only get result on first line with all others empty ? Like this:
    ||Exp-pri|(0117)|23400|Nej|Nej|Ja|Ja|Nej FRLARS|Fredrik|Larsson|(0117)|23403||||| ####Empty ANJA08|Anja|Daun|(0117)|23404||||| ####Empty

    What could go wrong ? It only interpolates variable PRI and adds a number ?

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://987722]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others making s'mores by the fire in the courtyard of the Monastery: (10)
As of 2014-12-18 05:53 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    Is guessing a good strategy for surviving in the IT business?





    Results (42 votes), past polls