とあるリスト(配列)から最小値を取得するにはどうすれば良いだろうか? いろいろな方法が考えられるが、ここでは三種類ほどサンプルをしめす。各関数の処理をそれぞれ見ていただきたい。
サンプル
;# ;#最小値を抽出する ;# use strict; use List::Util qw(min); #-----------------------------# # 初期値の設定 # #-----------------------------# my @array = (3,4,6,8,1,2,5,7); #1が最小値 #-----------------------------# # 最大値の取り出し # #-----------------------------# print min1( @array ), "\n"; print min2( @array ), "\n"; print min3( @array ), "\n"; #------------------------------------------------ #■最小値を抽出する (その1) #------------------------------------------------ sub min1 { my $min = shift; #最初の値を入れる #-- 渡された配列をすべてなめる --# foreach(@_){ $min = $_ if( $min > $_ ); #現在よりも小さい値なら #入れ替える } return( $min ); } #------------------------------------------------ #■最小値を抽出する (その2) #------------------------------------------------ sub min2 { #-- 昇順にソートし、一番最初の値を取り出す --# return( (sort {$a <=> $b} @_)[0] ); } #------------------------------------------------ #■最小値を抽出する (その3) #------------------------------------------------ sub min3 { #-- モジュールを利用(Perl5.8以降) --# return( List::Util::min(@_) ); }