タグ

ブックマーク / fbis.hatenablog.com (5)

  • ランダムな文字列を生成するString::Random - Unknown::Programming

    普段から良く使うんでメモ。 DBとかにユニークな値を突っ込む時とかにランダム文字列生成とかよくあること。 で、Perlでランダム文字列を生成しようと思ったらString::Randomがオススメ。 色々作り方があるんだけど一番便利なのはrandregexメソッド。 use String::Random; my $rand_str = String::Random->new->randregex('[A-Za-z0-9]{32}'); こんな感じで正規表現が指定できるので上記のように書くと32桁の英数字でランダムな文字列を生成してくれる。 ちなみにDBに突っ込む目的ならDBIx::Class::RandomStringColumnsってのがString::Randam使用して勝手に突っ込んでくれたりするので便利だったりする。

    ランダムな文字列を生成するString::Random - Unknown::Programming
  • Perl Tips - Unknown::Programming

    PerlのTipsになりそうなものを過去ログから引っ張り出してみました。 ランダムな文字列を生成するString::Random - Unknown::Programming local our $hoge; - Unknown::Programming whileでファイルハンドルをループする時の暗黙の$_について - Unknown::Programming リストの要素数を取得する - Unknown::Programming Perl6::Say-0.10 - Unknown::Programming クラスメソッドのインポートをModule::Compileでやっちゃう。 - Unknown::Programming メソッド呼び出しで継承する - Unknown::Programming どう書くでリハビリ - Unknown::Programming メソッド名一覧どーかく?

    Perl Tips - Unknown::Programming
  • Catalystのhome取れなくて急にハマった - Unknown::Programming

    久しぶりにCatalystを触ってハマったのでメモ。 ある環境では動くのに別の環境に移したら急にmyapp.ymlが読み込めなくてエラーになったんだけど、どうやらhomeの値がヘンな値になってるっぽい感じだったので急いでたのもあってとりあえずMYAPP_HOMEという環境変数にhomeのパスを直指定してなんとか動くようになったわけです。 元の環境ではMYAPP_HOMEなんて使わなくてもちゃんとhomeの自動取得がうまくいってたのにおかしーなーなんでかなーと思ってたわけですよ。 で、まぁ次の日Catalystのソースを見てびっくり。 homeの取得はCatalyst.pmのsetup_homeメソッドで行われています。 # Catalyst-v5.7011 sub setup_home { my ( $class, $home ) = @_; if ( my $env = Catalyst

    Catalystのhome取れなくて急にハマった - Unknown::Programming
  • リストの要素数を取得する - Unknown::Programming

    配列ではなくてリストの要素数を取得するのにはどうすればよいか?というお話。 まず配列の場合はスカラコンテキストで評価するだけなんでとても楽。 my @data = qw/ a b c d /; my $count = @data; # 4 ではリストの場合はどうなるか? 配列と同じように書くなら my $count = qw/ a b c d /; こうなるが、これは大間違いである。 リストをスカラコンテキストで評価すると最後の要素が返ってくるのでこの場合$countには「d」が入る。 とするならば一度配列で受け取り、その後にスカラコンテキストで評価するのが一番スマートなのかもしれない。 my $count = my @tmp = qw/ a b c d /; # 4 しかしながら要素数を取得するだけなのに@tmpを広いスコープに置くのが嫌なのであればdoを使って囲ってしまうのが吉であろう

    リストの要素数を取得する - Unknown::Programming
  • self-0.11なるものを触ってみた - Unknown::Programming

    ぼへーっとCPANのRSS眺めてたらselfとかいうのが目に付いた。 selfというネーミングから想像するに、なにやら面白いことしてくれそうな匂いがぷんぷん香ってきたので触ってみたわけです。 するとまさしくほぼ想像通りのことをやってくれるモジュールだったのですよ。 以下概要まんまだけども例をば。 package Hoge; use strict; use warnings; use self; sub new { my $class = shift; return bless {} , $class || ref $class; } sub hoge { if ( args ) { self->{hoge} = args; } return self->{hoge}; } my $obj = Hoge->new; $obj->hoge(100); print $obj->hoge; # 1

    self-0.11なるものを触ってみた - Unknown::Programming
  • 1