Calculating average using a perl script


Ok here is the basic perl script for calculating average.

I assume you know how to run the script if you dont ( I will put up a tutorial later so for now dig around in other forms )

Perl Script for calculating average from another file

#!/usr/bin/perl
#calculate averate from a file

use strict;

my $total = 0;
my $count =0;
while (my $line = <>) {
      $total +=$line;
      $count ++=;
}
print "Average = ", $total / $count, "\n";

So the  explaniation for the above code is…

use strict; – allow to find simple mistakes

to find the $average need to calculate

my $total

and the total number of lines

my $count

At the begining of the loop these values are 0.

therefore define the inital value

my $total  = 0;
my $count =0;

So now what you need to do this read each line andadd each value consequtively.

while (my $line = <>) {
   $total += $line;
   $count ++=;
 }
print "Average = ", $total / $count, "\n";

Read the first line.  Then add then and the value read to the total inital value  of 0.

   $total = $line + $total

calculate the total

   $count = $count + 1

calculate the total number of lines read
this can be written in short form as below

   $total += $line;
   $count ++=;

then go back in loop adding value conseutively until there are no more lines to read and then print the line

print "Average = ", $total / $count, "\n";

Hope this is clear I will put a anotated diagram up with more explanation later on.

Advertisements

Back to school


Finally I am doing MSc. I didn’t do quite well in BEng as I hoped. I didn’t listen to my lecturer at the time.

You can’t look after anyone else if you don’t look after your self

Those were her exact words and something that failed to listen at the time but never forget any more. It’s been haunting me forever. Hopefully MSc in BioInformatics would allow me to put that right. Leave the nightmare behind.

I think I was quite lucky to get in to MSc. I got  ripped apart in my interview. My references came in very late. I am still not properly enrolled because I am waiting for the documents to come through. So I got to make the most of this. But this would be just the beginning.  2 evenings per week (learn Unix, Perl and Java). It’s going to be fun. Brings back some some bad memories and some good memories. Oh and I am totally not using the MSc as an excuse to break my bank to buy one of those Alienware :D.

In the coming weeks I will be putting up the Tutorials I’ve learnt here. Mainly as a personal record and also hope it would be use to someone.