I want to write a Perl Script that reads a file.txt with columns of numbers,
20 30 12
31 20 54
63 30 21
11 12 10
and do some calculations, for example the mean. I don’t know how to declare and initialize it.
I’ve got this example, in which is looking for the median, and it has the data declared, in my case, the data is in a file, not in the script and want to calculate the median.
there is it..
#!/usr/bin/perl
#data points
@vals = ( 33, 23, 55, 39, 41, 46, 38, 52, 34, 29, 27, 51, 33, 28 );
print "UNSORTED: @vals\n";
#sort data points
@vals = sort(@vals);
print "SORTED: @vals\n"; #test to see if there are an even number of data points
if( @vals % 2 == 0) {
#if even then:
$sum = $vals[(@vals/2)-1] + $vals[(@vals/2)];
$med = $sum/2;
print "The median value is $med\n";
}
else{
#if odd then:
print "The median value is $vals[@vals/2]\n";
}
exit;
This shell one-liner multiply first col with second one :
EDIT: And the perl script version with your new requirements and the file with 3 cols :
You may understand what’s going on instead of just cut & paste 😉
To run the script :