tsucchi’s diary(元はてなダイアリー)

はてなダイアリー(d.hatena.ne.jp/tsucchi1022)から移行したものです

idiom

Class::Load を使う(try_load_class と load_optional_class)

Class::Load、動的にモジュールを読み込んでくれて、しかも require より柔軟で、便利です。で、Class::Load::try_load_class を使っていたのですが、ロード先がコンパイルエラーとかになっている場合に、0 が返ってきてしまうんですね。die してほしいなー…

ハッシュリファレンスのデリファレンス

ハッシュリファレンスのデリファレンスで初心者っぽいハマり方をしたので、メモ。 #!/usr/bin/perl use strict; use warnings; use feature qw(say); my $aa = { aaa => { bbb => 'ccc' }, xxx => 'yyy', }; say "aaa"; say $aa->{aaa}->{bbb};#ok say "xxx"…

配列の削除と splice

配列を操作してて、「ある条件のばあい、その要素を削除」みたいなことをしたい場合。良くやるのが、 sub remove_item_in_some_condition { my (@input) = @_; my @result = (); for my $item ( @input ) { push @result, $item if( !some_condition($item) …

Archive::Tar でアーカイブを作成する

Archive::Tar で tar.gz を作ろうと思ってぐぐってみたら、 use Archive::Tar; my $tar = Archive::Tar->new; $tar->add_files( 'a.txt', 'b.txt' ); $tar->write("hoge.tar.gz", COMPRESS_GZIP); みたいな感じの、ぶっちゃけ残念な感じのサンプルがヒットし…

map を使おう

仕事メモ。map の使い方で初心者っぽいハマり方をしたので。 my @aaa = qw( key1 key2 key3 ); こんな感じの配列から、「key」を除いて、(1, 2, 3)みたいなリストが欲しいとします。で、 my @aaa = qw( key1 key2 key3 ); @aaa = map { s/^key// } @aaa; #こ…

変数に代入しながら置換する

どっかで見たことあるコードなのだけど、どこで見たのか忘れちゃって、検索しようにもどう検索していいのか良くわかんない。で、試行錯誤したら再現できた。多分これであってるはず。忘れないようにメモメモ #!/usr/bin/perl -w use strict; use warnings; u…