Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling
 
PerlMonks  

Help with Hash

by kumaar1986 (Initiate)
on Nov 08, 2011 at 01:56 UTC ( #936635=perlquestion: print w/replies, xml ) Need Help??

kumaar1986 has asked for the wisdom of the Perl Monks concerning the following question:

I have a text file with contents like below . Ansv. specialist-/ överläkare: 1 Ordinerade läkemedel: 1 namn: 1 Undersökningsresultat: 1 H - Med avd K74: 3 Anamnes: 1 Bidiagnos(er) enl. ICD-10: 2 Uppföljning: 1 Nybesök: 1 Journalförare: 1 ASIH-Äldrebo Älvsjö: 4 Huvuddiagnos enl. ICD-10: 2 Vårdtid: 1 Orsakskod/text: 1 Bedömning: 1 Epikris: 1 H - AVA M83 Medicin: 8 Vårdförlopp: 1 Utskriftsdatum: 1 . I need to sort based based upon the Numerical values . I have wrote a piece of code and its sorting up based upon the alphabets

#!usr/bin/perl open (FILE, "raj.txt") || die "Cannot open file.\n"; open (NEWFILE, ">rk.txt") || die "Cannot find or open file for editing +.\n"; my %count; while (my $line=<FILE>) { my @z = (split(/\n/,$line)); ++$count{$z[0]}; } print "\n\tGRADES SORTED BY STUDENT NAME:\n"; foreach $key (sort (keys(%count))) { print NEWFILE "\t\t$key \t\t$keys{$values}\n"; } close NEWFILE; close FILE; print "Done!\n";

please someone help me how to do this and also give me some explanation about how to do. I am a beginner in perl.

Replies are listed 'Best First'.
Re: Help with Hash
by NetWallah (Canon) on Nov 08, 2011 at 03:35 UTC
    This code works with the numerics:
    use strict; use warnings; my @names; my @numerics; my $rec = 0; while (<DATA>){ ($names[$rec], $numerics[$rec]) = split /:\s/,$_; $rec++; } for (sort {$numerics[$a] <=> $numerics[$b]} 0..$#numerics){ print "$names[$_]\n"; } __DATA__ Ansv. specialist-/ överläkare: 1 Ordinerade läkemedel: 1 namn: 1 Undersökningsresultat: 1 H - Med avd K74: 3 Anamnes: 1 Bidiagnos(er) enl. ICD-10: 2 Uppföljning: 1 Nybesök: 1 Journalförare: 1 ASIH-Äldrebo Älvsjö: 4 Huvuddiagnos enl. ICD-10: 2 Vårdtid: 1 Orsakskod/text: 1 Bedömning: 1 Epikris: 1 H - AVA M83 Medicin: 8 Vårdförlopp: 1 Utskriftsdatum: 1
    Note - I got rid of the terminating " ." which interfers with the "number" to the right of the ":".

                "XML is like violence: if it doesn't solve your problem, use more."

      The code worked. Thanks a lot. It helped me to understand the concept also now. thanks

Re: Help with Hash
by JavaFan (Canon) on Nov 08, 2011 at 02:00 UTC
    Untested:
    foreach my $key (sort {$count{$a} <=> $count{$b}} keys %count) { ... }

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlquestion [id://936635]
Approved by BrowserUk
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others meditating upon the Monastery: (2)
As of 2022-05-17 01:36 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    Do you prefer to work remotely?



    Results (65 votes). Check out past polls.

    Notices?