App-summ

 view release on metacpan or  search on metacpan

script/summ  view on Meta::CPAN


my %Opts = (
    calc_count    => 1,
    calc_mode     => 1,
    calc_min      => 1,
    calc_max      => 1,
    calc_mean     => 1,
    calc_median   => 1,
    calc_variance => 1,
    calc_stddev   => 1,
    calc_percentiles => [25, 75],
    calc_covariance => 0,
    calc_correlation => 0,
);

sub parse_cmdline {
    my $res = GetOptions(
        'count!'    => \$Opts{calc_count},
        'mode!'     => \$Opts{calc_mode},
        'max!'      => \$Opts{calc_max},
        'min!'      => \$Opts{calc_min},
        'mean!'     => \$Opts{calc_mean},
        'median!'   => \$Opts{calc_median},
        'variance!' => \$Opts{calc_variance},
        'stddev!'   => \$Opts{calc_stddev},
        'no-percentile|P' => sub { $Opts{calc_percentiles} = [] },
        'percentile|p=s'  => sub {
            my $p = int($_[1]);
            die "summ: Invalid percentile $p, must be between 0 and 100\n"
                if $p < 0 || $p > 100;
            push @{ $Opts{calc_percentiles} }, $p
                unless grep { $p == $_ } @{ $Opts{calc_percentiles} };
        },
        'covariance!'  => \$Opts{calc_covariance},
        'correlation!' => \$Opts{calc_correlation},
        'help|h' => sub {
            print <<USAGE;
Usage:
  summ [OPTIONS]... [INPUT]...
  summ --help

For more details, see the manpage/documentation.

script/summ  view on Meta::CPAN

    }
    if ($Opts{calc_median}) {
        printf "Median: %s\n", $sd->median;
    }
    if ($Opts{calc_variance}) {
        printf "Variance: %s\n", $sd->variance;
    }
    if ($Opts{calc_stddev}) {
        printf "Std. dev.: %s\n", $sd->standard_deviation;
    }
    if (@{ $Opts{calc_percentiles} }) {
        require Lingua::EN::Numbers::Ordinate;
        for my $p (sort { $a <=> $b } @{ $Opts{calc_percentiles} }) {
            printf "%s percentile: %s\n",
                Lingua::EN::Numbers::Ordinate::ordinate($p),
                  $sd->percentile($p);
        }
    }
    if ($Opts{calc_covariance}) {
        require Statistics::Basic;
        printf "Covariance: %s\n", Statistics::Basic::covariance(
            \@nums, \@nums2);
    }
    if ($Opts{calc_correlation}) {
        require Statistics::Basic;
        printf "Correlation: %s\n", Statistics::Basic::correlation(

script/summ  view on Meta::CPAN

Do not calculate median.

=item * --no-variance

Do not calculate variance.

=item * --no-stddev

Do not calculate standard deviation.

=item * --no-percentile, -P

Do not calculate any percentiles. The default is to calculate 25th and 75th
percentiles.

=item * --percentile=P, -p P

Add a percentile to calculate, for example: C<-p 5 -p 95> to add calculating 5th
and 95th percentiles. The default is to only calculate 25th and 75th
percentiles.

=item * --covariance

Calculate covariance. This requires every line to contain two numbers intead of
one.

=item * --correlation

Calculate correlation. This requires every line to contain two numbers intead of
one.



( run in 0.343 second using v1.01-cache-2.11-cpan-709fd43a63f )