From b0f2d60d85105ffd7f9966866988bde69ea9d971 Mon Sep 17 00:00:00 2001 From: Steve Hancock Date: Wed, 7 Sep 2022 11:57:48 -0700 Subject: [PATCH] use List::Util min and max --- lib/Perl/Tidy/Formatter.pm | 24 ++++++++---------------- 1 file changed, 8 insertions(+), 16 deletions(-) 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 -- 2.39.5