タグ

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

  • sprintfで使用する引数を直指定する方法 - Unknown::Programming

    久々にPerl。いや、ほんと久しぶりよね。 printf '%d年%d月%d日', 2010, 12, 22; # 2010年12月22日 上記のような処理の時に、引数の数は変更せずに年を削って「12月22日」と表示したい場合、以下のようにすれば可能。 printf '%2$d月%3$d日', 2010, 12, 22; # 12月22日 「%」と「d」の間に「数値$」を追加することで使用する引数を直指定できる。上記の場合だと2番目と3番目の引数を使うという感じになる。 こんなsprintfの使い方なんて滅多なことではしないと思うけど、その滅多が来ちゃったので滅多ごめん。 滅多ごめん。 # ちなみにPHPでも可能。 参考:sprintf - perldoc.perl.org

    sprintfで使用する引数を直指定する方法 - Unknown::Programming
    kazeburo
    kazeburo 2010/10/28
  • mapで要素除去 - Unknown::Programming

    意外と知られてないかと思ったのでメモ。 grep {$_} map { $_ ? $N/$_ : undef } @_; って書くの? mapで特定要素を除外したいときとか - ロックスターになりたい mapを使って特定の要素を除去する方法ですが、上記の方法はこの用途であれば問題ないですが、undefという要素もちゃんと要素として見なしたい場合には困ります。 で、どうするかというと、mapの戻り値に空リストを返すことで要素の除去ができます。 my $n = 1000; my @array = (2, 1, 0, -1, -2); my @new_array = map { $_ ? $n/$_ : () } @array; たまーに使うので覚えておくと吉です。

    mapで要素除去 - Unknown::Programming
    kazeburo
    kazeburo 2008/02/09
  • 携帯のユーザーIDを取得する - Unknown::Programming

    DoCoMoの場合は端末ID、SoftBankの場合はユーザID、AUの場合はサブスクライバIDを返すというもの。 CPAN漁ってみたところ、一応HTTP::MobileAgent::Plugin::ExtensionやSledge::MobileGate::Mobileとか携帯のIDを取得できるヤツはあった。 だけど、HTTP::MobileAgent::Plugin::ExtensionはSoftBankのときにUAから取得できるシリアルナンバーしか取れない。あとDoCoMoのis_utnの判定がhtml_version取得できない場合に未対応になるのがどうにもいけてない。 一方Sledge::MobileGate::MobileはユーザID取れるには取れるんだけど取得できなかった場合にシリアルナンバー返すんでちょい微妙。というかどっちにしろSledgeしからしか扱えないのでもっと汎用

    携帯のユーザーIDを取得する - Unknown::Programming
    kazeburo
    kazeburo 2007/05/06
  • Class::C3がXSに対応したようなのでベンチとってみた - Unknown::Programming

    最近Develop版が頻繁にアップされていたClass::C3ですが、とうとう正規版がアップされましたね。 Class-C3-0.16 Class-C3-XS-0.02 ちなみにhttp://d.hatena.ne.jp/fbis/20070319/1174296128もFIXされてます。 ってことで速度的にどれくらいパワーアップしたのか気になったのでベンチとってみました。 ソースはこんな感じ。とりあえず比較のために普通にSUPER使った場合とのベンチ。 use Benchmark qw(cmpthese timethese :hireswallclock); package MyBase; sub new { bless {} , shift } sub hoge { } package MyChildNext; use base qw/MyBase/; use Class::C3; s

    Class::C3がXSに対応したようなのでベンチとってみた - Unknown::Programming
    kazeburo
    kazeburo 2007/05/04
    c3
  • 決意 - Unknown::Programming

    こんなこと書くのもどうかなと思ったんですが、やっぱ書きます。 ここ数ヶ月色々悩んだ結果、10月中旬で5年勤めた今の会社を辞めることになりました。 このままここにいてももやもやずるずる行きそうだし、とにかく動かないと何にもならないと思い決意しました。 そしてハカーな人たちならここで「mixi入社しました!」とか「SixApart入社しました!」とか「はてな入社しました!」とかってことになるんでしょうけど、僕のレベルでは恐れ多いなこりゃ。 そういやはてなの伊藤さんが今月で入社して2年目らしいのですが、僕の5年と密度が違うよなーって思ってしまう。 いやまぁ僕もこの5年で得るものはたくさんあったけどスピードが全然違うんだろうなぁと。 ハッキリいって僕はPerlぐらいしか誇れるものがない(これも怪しいけどね)。 WEBプログラマとしてやってきたけどサーバーの知識なんてあまり無いに等しいし。 Wind

    決意 - Unknown::Programming
    kazeburo
    kazeburo 2006/09/20
  • FormValidator::Simple::Plugin::FormatDateTimeとかどうかな - Unknown::Programming

    FormValidator::Simple使って日付のチェックする時に標準のやつはリストしか対応してないっぽい。 日付文字列からその日付のチェックを行うようなプラグイン無いかなーと思ってCPAN見てたんだけどそれらしきものがないようだ(多分)。 というわけでそれらしきものを考えてみました。 ソースはこんな感じで、 package FormValidator::Simple::Plugin::FormatDateTime; use strict; use warnings; use DateTime::Format::Strptime; use FormValidator::Simple::Exception; use FormValidator::Simple::Constants; our $VERSION = 1.01; sub FORMAT_DATETIME { my $class

    FormValidator::Simple::Plugin::FormatDateTimeとかどうかな - Unknown::Programming
    kazeburo
    kazeburo 2006/05/16
    気づかなかった。
  • 1