use warnings; use strict; use Benchmark qw(:all); my @arr; push @arr, int(rand(10000)) for (1 .. 1000000); my($min, $max) = ($arr[0], $arr[0]); cmpthese(100, { no_break => sub { for (@arr) { $min = $_ if $_ < $min; $max = $_ if $_ > $max; } }, break => sub { for (@arr) { if($_ < $min) { $min = $_; next; } $max = $_ if $_ > $max; } } });