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