CORRECTION - Code simplification - round

This commit is contained in:
John W. Krahn 2003-02-04 04:56:46 +00:00
parent 2b6fdc74c4
commit c8ae8bab6b

View file

@ -20,9 +20,9 @@ use Exporter;
use strict; use strict;
use Tie::IxHash; use Tie::IxHash;
our @ISA = qw(Exporter); our @ISA = qw(Exporter);
our @EXPORT = qw(&makeTabSafe &makeArrayTabSafe &randomizeHash &commify &randomizeArray our @EXPORT = qw(&makeTabSafe &makeArrayTabSafe &randomizeHash &commify &randomizeArray
&sortHashDescending &sortHash &isIn &makeCommaSafe &makeArrayCommaSafe &randint &round); &sortHashDescending &sortHash &isIn &makeCommaSafe &makeArrayCommaSafe &randint &round);
=head1 NAME =head1 NAME
@ -71,8 +71,9 @@ Any old number will do.
=cut =cut
sub commify { sub commify {
my $text = reverse $_[0]; my $text = reverse $_[ 0 ];
$text =~ s/(\d\d\d)(?=\d)(?!\d*\.)/$1,/g; $text =~ s/(\d\d\d)(?=\d)(?!\d*\.)/$1,/g;
return scalar reverse $text; return scalar reverse $text;
} }
@ -97,6 +98,7 @@ An array to look for the value in.
=cut =cut
sub isIn { sub isIn {
my $key = shift; my $key = shift;
$_ eq $key and return 1 for @_; $_ eq $key and return 1 for @_;
@ -119,9 +121,10 @@ A reference to the array to look through.
=cut =cut
sub makeArrayCommaSafe { sub makeArrayCommaSafe {
my $array = $_[0]; my $array = $_[ 0 ];
$_ = makeCommaSafe($_) for @$array; $_ = makeCommaSafe( $_ ) for @$array;
} }
#------------------------------------------------------------------- #-------------------------------------------------------------------
@ -140,9 +143,10 @@ Searches through an array looking for tabs and replaces them with four spaces. A
=cut =cut
sub makeArrayTabSafe { sub makeArrayTabSafe {
my $array = $_[0]; my $array = $_[ 0 ];
$_ = makeTabSafe($_) for @$array; $_ = makeTabSafe( $_ ) for @$array;
} }
#------------------------------------------------------------------- #-------------------------------------------------------------------
@ -161,8 +165,9 @@ The text to search through.
=cut =cut
sub makeCommaSafe { sub makeCommaSafe {
my $text = $_[0]; my $text = $_[ 0 ];
$text =~ tr/,\r\n/; /; $text =~ tr/,\r\n/; /;
return $text; return $text;
} }
@ -183,8 +188,9 @@ The text to search through.
=cut =cut
sub makeTabSafe { sub makeTabSafe {
my $text = $_[0]; my $text = $_[ 0 ];
$text =~ tr/\r\n/ /; $text =~ tr/\r\n/ /;
$text =~ s/\t/ /g; $text =~ s/\t/ /g;
return $text; return $text;
@ -210,11 +216,12 @@ The highest possible value. Defaults to 1.
=cut =cut
sub randint { sub randint {
my ($low, $high) = @_; my ( $low, $high ) = @_;
$low = 0 unless defined $low; $low = 0 unless defined $low;
$high = 1 unless defined $high; $high = 1 unless defined $high;
($low, $high) = ($high,$low) if $low > $high; ( $low, $high ) = ( $high, $low ) if $low > $high;
return $low + int( rand( $high - $low + 1 ) ); return $low + int( rand( $high - $low + 1 ) );
} }
@ -234,13 +241,14 @@ A reference to the array to randomize.
=cut =cut
sub randomizeArray { sub randomizeArray {
my $array = shift; my $array = shift;
if ($#$array > 0) { if ( $#$array > 0 ) {
for (my $i = @$array; --$i; ) { for ( my $i = @$array; --$i; ) {
my $j = int rand ($i+1); my $j = int rand( $i + 1 );
next if $i == $j; next if $i == $j;
@$array[$i,$j] = @$array[$j,$i]; @$array[ $i, $j ] = @$array[ $j, $i ];
} }
} }
} }
@ -261,13 +269,14 @@ A reference hash to randomize.
=cut =cut
sub randomizeHash { sub randomizeHash {
my $hash = $_[0]; my $hash = $_[ 0 ];
my @keys = keys %$hash; my @keys = keys %$hash;
randomizeArray(\@keys); randomizeArray( \@keys );
tie my %temp, 'Tie::IxHash'; tie my %temp, 'Tie::IxHash';
foreach my $key (@keys) { foreach my $key ( @keys ) {
$temp{$key} = $hash->{$key}; $temp{ $key } = $hash->{ $key };
} }
return \%temp; return \%temp;
} }
@ -288,8 +297,9 @@ Any floating point number.
=cut =cut
sub round { sub round {
return sprintf('%.0f', $_[0]); return int( $_[ 0 ] + 0.5 );
} }
#------------------------------------------------------------------- #-------------------------------------------------------------------
@ -308,10 +318,11 @@ A hash to be sorted.
=cut =cut
sub sortHash { sub sortHash {
my %hash = @_; my %hash = @_;
tie my %newHash, 'Tie::IxHash'; tie my %newHash, 'Tie::IxHash';
for my $key ( sort { $hash{$a} cmp $hash{$b} } keys %hash ) { for my $key ( sort { $hash{ $a } cmp $hash{ $b } } keys %hash ) {
$newHash{ $key } = $hash{ $key }; $newHash{ $key } = $hash{ $key };
} }
return %newHash; return %newHash;
@ -337,7 +348,7 @@ A hash to be sorted.
sub sortHashDescending { sub sortHashDescending {
my %hash = @_; my %hash = @_;
tie my %newHash, 'Tie::IxHash'; tie my %newHash, 'Tie::IxHash';
for my $key ( sort { $hash{$b} cmp $hash{$a} } keys %hash ) { for my $key ( sort { $hash{ $b } cmp $hash{ $a } } keys %hash ) {
$newHash{ $key } = $hash{ $key }; $newHash{ $key } = $hash{ $key };
} }
return %newHash; return %newHash;