Beefy Boxes and Bandwidth Generously Provided by pair Networks
Your skill will accomplish
what the force of many cannot
 
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
Replies are listed 'Best First'.
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 studying the Monastery: (11)
As of 2015-07-31 08:15 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (275 votes), past polls