From: Steve Hancock Date: Wed, 7 Sep 2022 18:57:48 +0000 (-0700) Subject: use List::Util min and max X-Git-Tag: 20220613.05~7 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=b0f2d60d85105ffd7f9966866988bde69ea9d971;p=perltidy.git use List::Util min and max --- diff --git a/lib/Perl/Tidy/Formatter.pm b/lib/Perl/Tidy/Formatter.pm index 5742df63..ff0da29f 100644 --- a/lib/Perl/Tidy/Formatter.pm +++ b/lib/Perl/Tidy/Formatter.pm @@ -51,7 +51,8 @@ use constant SPACE => q{ }; { #<<< A non-indenting brace to contain all lexical variables use Carp; -use English qw( -no_match_vars ); +use English qw( -no_match_vars ); +use List::Util qw( min max ); # min, max are in Perl 5.8 our $VERSION = '20220613.04'; # The Tokenizer will be loaded with the Formatter @@ -1232,20 +1233,6 @@ sub consecutive_nonblank_lines { $vao->get_cached_line_count(); } -sub max { - my (@vals) = @_; - my $max = shift @vals; - for (@vals) { $max = $_ > $max ? $_ : $max } - return $max; -} - -sub min { - my (@vals) = @_; - my $min = shift @vals; - for (@vals) { $min = $_ < $min ? $_ : $min } - return $min; -} - sub split_words { # given a string containing words separated by whitespace, @@ -10062,7 +10049,12 @@ sub clip_adjusted_levels { my ($self) = @_; my $radjusted_levels = $self->[_radjusted_levels_]; return unless defined($radjusted_levels) && @{$radjusted_levels}; - foreach ( @{$radjusted_levels} ) { $_ = 0 if ( $_ < 0 ) } + my $min = min( @{$radjusted_levels} ); # fast check for min + if ( $min < 0 ) { + + # slow loop, but rarely needed + foreach ( @{$radjusted_levels} ) { $_ = 0 if ( $_ < 0 ) } + } return; } ## end sub clip_adjusted_levels