2004,21,21,1,16.00 2004,21,21,1,16.25 2004,22,22,1,18.00 2004,22,22,1,18.25 2004,21,21,2,16.00 2004,21,21,2,16.25 2004,22,22,2,18.00 2004,22,22,2,18.25 #### 2004,21,1,1,16.00,1600,18.62,20.28,16.86,3.225,1001,33.95,33.53,40.2,0,0,97.2,1.782,105.3,56.92,0,82.2 #### #!/usr/bin/perl use strict; use warnings; my @data; open(DAT, '<', 'testing.txt') or die $!; while () { chomp; push @data, [split(/,/)]; #store in array of arrays } close (DAT); my $count=0; for my $row (0..$#data){ #iterate over each row by index $count++; #print "\nThe number of rows:"; #print "\n $count"; for my $column(0..$#{$data [$row]}){ #iterate over each column by index #print "row $row, column $column:$data[$row][$column]\n"; #display using the notation from the arrow rule #the data in the row 1, column 1 #print $data [1][1],"\n"; #print $data [1]->[1],"\n"; #Rule 2 #print $ {$data [1]}[1],"\n"; #Rule 1 } } #print "\nThe number of rows:"; #print "\n $count"; open OUT, '>dailyrecords.xml' or die $!; print OUT "\n"; my @max_drybulb; for (my $m=1;$m<=2;$m++){ for (my $d=21;$d<=22;$d++){ #print "\n$i"; #print"\n$n"; my @drybulb=map { $_->[11] } grep { (($_->[2] == $d) && ($_->[3] == $m)) } @data; my @wetbulb=map { $_->[12] } grep { (($_->[2] == $d) && ($_->[3] == $m)) } @data; my @rainfall=map { $_->[4] } grep { (($_->[2] == $d) && ($_->[3] == $m)) } @data; my $hyphen="-"; my @dates = map { "$_->[2]$hyphen$_->[3]$hyphen$_->[0]" } grep { (($_->[2] == $d) && ($_->[3] == $m)) } @data; my $date=&senddate(@dates); #print "The date for each of the sets:"; #print"\n@dates\n"; #print"\nThis set of data:"; #print"\n@drybulb\n"; #print"\nThis set of data:"; #print"\n@wetbulb\n"; #print"\nThis set of data:"; #print"\n@rainfall\n"; my $max_drybulb=&maxtemp(@drybulb); #print"\n$max_drybulb"; my $min_drybulb=&mintemp(@drybulb); #print"\n$min_drybulb"; my $max_wetbulb=&maxtemp(@wetbulb); #print"\n$max_wetbulb"; my $min_wetbulb=&mintemp(@wetbulb); #print"\n$min_wetbulb"; my $prec=&totrain(@rainfall); #print"\n$prec"; print OUT "\n"; print OUT"\n\t$date"; print OUT "\n\t"; print OUT "\n\t\t"; print OUT "\n\t\t"; print OUT "\n\t\t"; print OUT "\n\t\t"; print OUT "\n\t"; print OUT "\n\t"; print OUT "\n"; print OUT "\n\n\n\n"; } } print OUT "\n"; close (OUT); sub maxtemp { my @max=@_; foreach my $item(@max){ #print "\nThe item:"; #print"\n$item"; } my $max=$_[0]; for (@max) { $max = $_ if $_ > $max } return $max; } 1; sub mintemp { my @min=@_; my $min=$_[0]; for (@min) { $min = $_ if $_ < $min } return $min; } 1; sub totrain { my @prec=@_; #print "\n@prec\n"; my $tot=0; foreach my $ritem(@prec){ $tot=$tot + $ritem; } return $tot; } 1; sub senddate{ my @dat=@_; foreach my $ditem(@dat){ return $ditem; } } 1;