タグ

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

  • Perlにおける定数宣言(constant or Readonly or Attribute::Constant) - Unknown::Programming

    正直言いますと、個人的には定数って殆ど使わないんですよね。 昔はちょこちょこ使ってたんですが、最近は定数となりうる物は基的にYAML等外部ファイルに持たせて変更可能にすることが多いのでまったく使ってません。 ですがそれでもPerlで定数を使いたい時にはどーすんの?っていう時のために軽くここにまとめておきます。 言わずもかなPerl5.8にはconstantという定数を定義できる標準モジュールがあります。 use strict; use constant PI => 3.14; # 表示 print PI; # 3.14 # 上書きしようとすると・・・ PI = 3; # Can't modify constant item in scalar assignment とこのように上書きしようとするとエラーを吐いて死にます。 しかも実行時ではなく、コンパイル時にエラーを吐きます。 実はこのc

    Perlにおける定数宣言(constant or Readonly or Attribute::Constant) - Unknown::Programming
  • メソッド名一覧どーかく? - Unknown::Programming

    http://ja.doukaku.org/32/ 最近PHPやってるのでリハビリがてらPerlを触ってみる。 test_で始まるメソッドを全て呼び出すわけですが、ワンライナーでやってみた。 use target; do { target->can($_) || sub {} }->() for grep { /^test_/ } keys %target::; ちょっと無理やり臭いな。 よしよし、忘れてないぞ。

    メソッド名一覧どーかく? - Unknown::Programming
    cu39
    cu39 2010/03/02
  • 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
  • エイリアスメソッドの作成方法の続き - Unknown::Programming

    エイリアスメソッドの作成方法 - Unknown::Programming 前に上記記事でメソッドのエイリアスを作る方法を書いたんだけども。 Class::C3使ってるときにうまくいかないという結論のまま終わってました。 一応その後、id:charsbarさんがエイリアスメソッドの作成方法 - Charsbar::Noteという記事でAUTOLOADを使って実現する方法を書いてくれたんだけど、AUTOLOADだと全体に影響を及ぼしそうなので他に影響を与えずにエイリアスメソッドを作りたいなぁと。 そこで、最近Perl Hacks読んで思いついたので若干無茶な方法だけどエイリアスメソッドを作るモジュールを考えてみました。 名づけてSub::Alias。 package Sub::Alias; use strict; use warnings; use B::Deparse; use base

    エイリアスメソッドの作成方法の続き - Unknown::Programming
  • エイリアスメソッドの作成方法 - Unknown::Programming

    ここにhogeというメソッドがあるとして sub hoge { my $self = shift; my $num = shift; return $num + 10; } こいつと同じ動きをするhoge_aliasメソッドを作成する場合、 例えば下記のようにhogeメソッドにそのまま投げるやり方がすぐ思いつく方法かな。 sub hoge_alias { shift->hoge(@_) } これでもいいんですが、hogeメソッドでcaller関数なんかを使って何かしら処理している場合に問題になる可能性があるので、gotoとか使ってみる。 sub hoge_alias { goto &hoge } だけど、型グロブ期な僕は下記のようにするのが好きです。 *hoge_alias = \&hoge; ただし、use warningsとかしてると「Name "main::hoge_alias" u

    エイリアスメソッドの作成方法 - Unknown::Programming
  • PHPがどうにも好きになれない理由 - Unknown::Programming

    仕事PerlPHPも使うんだけど、どうにもPHPが好きになれない。 いったいなんでだろうか。先にPerlから入ったもんだから後から入ったPHPに対して不満があるのかな? ま、とにかく両方やっててPHPが微妙だなぁと思う部分を列挙してみよう。 ただPHPに関してそれほど詳しくないので間違っている部分もあるかもしれません。 あ、ちなみにここでいうPHPってのはPHP4(PHP4.4.1)のことです。 変数のtypeミス(strict 'vars') これが一番痛い。 まさしくPerlでstrictを使わずに実装してるような、そう、まるで先祖帰りしてるような感覚になってしまうので当につらい。 変数のスコープ 変数のスコープが関数単位でしか発生しないのが痛い。 これによりif条件の場合のみとかループ中でしか使わない変数とかを定義できない。 つまり、変数の存在範囲を細かく設定できないのだ。 配

    PHPがどうにも好きになれない理由 - Unknown::Programming
  • 1