IT練習ノート

IT関連で調べたこと(実際は嵌ったこと)を書いています。

2013-11-01から1ヶ月間の記事一覧

List::Util::reduceの使い所

検索してもあまり例がみつけられなかったので備忘で残す。 use List::Util; use Data::Dumper; $foo = + [ +{k=>'a', v=>10}, +{k=>'b', v=>30}, +{k=>'c', v=>40}, +{k=>'d', v=>30},]; $max_foo_v = List::Util::reduce { $a->{k} >= $b->{k} ? $a : $b } …

ハッシュの特定のキーでまとめる処理

use Data::Dumper; $a=+[ +{k=>1, v=>'a'}, +{k=>1, v=>'b'}, +{k=>2, v=>'c'}, +{k=>2, v=>'d'},]; print Dumper($a); $b=+{}; push (@{$b->{$_->{k}}} ,$_->{v}) for (@$a); print Dumper($b); $VAR1 = [ { 'k' => 1, 'v' => 'a' }, { 'k' => 1, 'v' => 'b…

carp, cluck, croak, confessの違い

package B; use Carp qw(carp cluck croak confess); sub test { carp 'this is carp'; # cluck 'this is cluck'; # croak 'this is croak'; # confess 'this is confess'; # warn 'this is warn'; # die 'this is die'; } package main; B::test(); # Fatal…

ソートの練習

use List::Util qw(shuffle); @foo = (9,8,7,6,5); sub mysort { my @a = @_; if (scalar(@a)<2) { return @a; } else { return ( mysort(grep { $_ < $a[0] } @a), $a[0], mysort(grep { $a[0] < $_ } @a) ); } } for (1..10){ @foo = shuffle(@foo); print…