Hatena::Groupperl

Perl Tech RSSフィード

2011-10-01

Perl6ドキュメントを日本語に翻訳した はてなブックマーク -  Perl6ドキュメントを日本語に翻訳した - Perl Tech

Perl6公式ドキュメントの日本語版を作りましたのでお知らせいたします。コリャ英和!というソフトで機械翻訳したので変な訳も多いですが(bless→祝福しろ、die→○ね、とか)・・・まあ意味不明な箇所は原文読め、ということです。

※ OmegaTで人力翻訳していた時期もあったけど、原文の量が多すぎて諦めた

http://damako.net/perl6specs/perl6specs.html

2011-01-02

qw()の変な使い方 はてなブックマーク -  qw()の変な使い方 - Perl Tech

なんと、以下のコードはきちんと動作します。

foreach my $str qw(a b c d) {
    print $str, "\n";
}

結果

a
b
c
d

perlのパーサーが内部でqw(a b c d)を(qw(a b c d))のように解釈するため、foreachに必須のはずの括弧が省略できてしまうのです。この奇妙な動作はperl5135deltaにあるように5.13以降のperlでは廃止されます。絶対に使わないでください。(個人的には、このままのほうが便利じゃね?と思う・・・)

2011-01-01

メソッド呼び出しのwantarrayはどうなるのか はてなブックマーク -  メソッド呼び出しのwantarrayはどうなるのか - Perl Tech

package Called;

sub called {
    my ($class, $arg) = @_;
    printf "$arg: wantarray = %d defined = %d\n", wantarray, wantarray;
    return $class;
}

package main;

sub func {
    $arg = shift;
}

Called->called("void called()");
() = Called->called("() = called()");
Called->called("void ->called->")->called("void ->called->called");
() = Called->called("() = ->called->")->called("() = ->called->called");
func( Called->called("func( called() )") );

出力結果

当たり前だがvoidコンテキストでwantarrayは偽(undef)になる。メソッドのチェーン(->called->called)はスカラーコンテキスト、関数呼び出しではリストコンテキストになる。

void called(): wantarray = 0 defined = 0
() = called(): wantarray = 1 defined = 1
void ->called->: wantarray = 0 defined = 1
void ->called->called: wantarray = 0 defined = 0
() = ->called->: wantarray = 0 defined = 1
() = ->called->called: wantarray = 1 defined = 1
func( called() ): wantarray = 1 defined = 1

2010-12-19

GUIとガベージコレクションの組み合わせは難しい はてなブックマーク -  GUIとガベージコレクションの組み合わせは難しい - Perl Tech

GUIプログラムのガベージコレクションは厄介ですね。GUIパーツの解放をGCに任せる方がいいのか、それともプログラマーが手動で行う方がいいのか。GUI上では必要なものが勝手に解放されたら困るし・・・さらにperlのリファレンスカウントやweak referenceが絡んでくると大変なことになりそう。

C#Javaでも似たような話題が出ているので、それをマネすればいいのかな?

SOS団がCPANモジュールを公開してるんだが はてなブックマーク -  SOS団がCPANモジュールを公開してるんだが - Perl Tech

http://search.cpan.org/dist/FLTK/

2010-12-11

Strawberry Perlはlibjpegがバンドルされてました はてなブックマーク -  Strawberry Perlはlibjpegがバンドルされてました - Perl Tech

よく見たらStrawberry Perlにはlibjpeg、libpng、libzが最初から入ってるんですね。何も気にする必要なかったんだな・・・

Unix系なら大抵の場合インストール済みだと思うので、かなり広範囲をカバーできそう。