I am trying to translate a Perl script into PHP and I am having problems with some Perl stuff. For example, what does it mean @_ -1? And how do I write it in PHP?
The whole function is as follows:
sub variance {
my $sum = sum_squares (@_);
my $deg = @_ - 1;
return $sum/$deg;
}
So, all the routines are as follows:
sub mean {
my $sum = 0 ;
foreach my $x (@_) {
$sum += $x ;
}
return $sum/@_ ;
}
sub sum_squares {
my $mean = mean (@_) ;
my $sum_squares = 0 ;
foreach my $x (@_) {
$sum_squares += ($x - $mean) ** 2 ;
}
return $sum_squares ;
}
sub variance {
my $sum_squares = sum_squares (@_) ;
my $deg_freedom = @_ - 1 ;
return $sum_squares/$deg_freedom ;
}
sub median {
my @sorted = sort {$a <=> $b} (@_) ;
if (1 == @sorted % 2)
{return $sorted[($#sorted)/2]}
else
{return ($sorted[($#sorted-1)/2]+$sorted[($#sorted+1)/2]) / 2}
}
sub histogram {
my %histogram = () ;
foreach my $value (@_) {$histogram{$value}++}
return (%histogram) ;
}
Please carry me because he is my first time with Perl. From what I saw (tested), the correct answer in this case is David Doorwar. I have one more question regarding this set of routines, which is here .
source
share