Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
?
Solved

Print Only First Three Highest Values

Posted on 2007-11-16
5
Medium Priority
?
206 Views
Last Modified: 2013-12-25
Hi All

I have 8 variables with numeric values:

$Variable1 = 80;
$Variable2 = 50;
$Variable3 = 30;
$Variable4 = 70;
$Variable5 = 20;
$Variable6 = 50;
$Variable7 = 40;
$variable8 = 10;


How can I print only the first three with the highest value.

EX:

print "$Variable1\n $Variable4\n $Variable2\n";
0
Comment
Question by:blnukem
  • 2
  • 2
5 Comments
 
LVL 3

Expert Comment

by:BioI
ID: 20297591
It is better to store them in an array I think

@array = (80, 50, 30, 70, 20, 50, 40, 10);
@sorted = sort { $b <=> $a } @array;

the highest number is now stored at index 0
print "highest: ", $sorted[0], "\n";
print "second highest: ", $sorted[1], "\n";
...

remarkt that if you do {$a <=> $b}, you sort in an ascending way.
with the current {$b <=> $a}, you sort in a descending way
0
 
LVL 85

Accepted Solution

by:
ozo earned 2000 total points
ID: 20297592
print "$_\n" for (sort $Variable1,$Variable2,$Variable3,$Variable4,$Variable5,$Variable6,$Variable7,$Variable8)[-3..-1]
0
 

Author Closing Comment

by:blnukem
ID: 31409535

Thanks ozo!!
0
 
LVL 3

Expert Comment

by:BioI
ID: 20297632
@ozo,

the sort function - as far as I know, sorts alphabetically, and your solution will run into problems.
But if you change e.g. $variable8=10 into $variable8=150, your code will still return 50, 70, 80 because it sorts them alphabetically
same problem if you change variable8 from 10 to 9: your solution will then return 9 as the highest number (higher than 80).
0
 
LVL 85

Expert Comment

by:ozo
ID: 20297646
> sorts alphabetically
true
(sort {$b<=>$a} $Variable1,$Variable2,$Variable3,$Variable4,$Variable5,$Variable6,$Variable7,$Variable8)[0..2]
would have been better
0

Featured Post

Receive 1:1 tech help

Solve your biggest tech problems alongside global tech experts with 1:1 help.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This article is meant to give a basic understanding of how to use R Sweave as a way to merge LaTeX and R code seamlessly into one presentable document.
Article by: evilrix
Looking for a way to avoid searching through large data sets for data that doesn't exist? A Bloom Filter might be what you need. This data structure is a probabilistic filter that allows you to avoid unnecessary searches when you know the data defin…
The viewer will learn how to user default arguments when defining functions. This method of defining functions will be contrasted with the non-default-argument of defining functions.
This video will show you how to get GIT to work in Eclipse.   It will walk you through how to install the EGit plugin in eclipse and how to checkout an existing repository.
Suggested Courses

578 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question