#!/usr/local/bin/perl -w for (0..99){ push @data, rand(100); } @ndata = normalize(@data); for $i (0..99){ print "$i) $data[$i] -> $ndata[$i]\n"; } print "Mean ",mean(@data), "\tStdDev ", stddev(@data), "\n"; sub normalize{ my @d = @_; my $m = mean(@d); my $std_dev = stddev(@d); my @nd=(); my $j =0; for my $i (@d){ $nd[$j] = ( $i - $m )/ $std_dev; $j++; } return @nd; } sub mean { my @d = @_; my $count=0; my $sum=0; for my $i (@d){ $count++; $sum += $i; } return $sum / $count; } sub stddev{ my @d = @_; my $var=0; my $count=0; my $m = mean(@d); for my $i (@d){ $count++; $var += ($i-$m)**2; } $var /= $count; return sqrt($var); } __END__ A simple tool to normalize numeric data in N(0,1)