Perl日記

日々の知ったことのメモなどです。Perlは最近やってないです。

2009-12-01から1ヶ月間の記事一覧

Testをはじめてみた3

「Testをはじめてみた1 - Perl日記」 「Testをはじめてみた2 - Perl日記」の続き。 「なったふり」オブジェクト(モック)を使ってTest Test::MockObject mock...模造品、まがい物。 システムの一部のテストなんだけど、システムの他の部分を通るところもあっ…

Testをはじめてみた2

前回「Testをはじめてみた1 - Perl日記」の続き。 Test::More等について箇条書き。 オブジェクト指向のテスト isa_ok() # 第一引数のobjが第二引数の所属クラスならok, 違うならnot ok 継承もok can_ok() # 第一引数のobjが第二引数のメソッドを呼び出せるな…

Testをはじめてみた1

今まで参考書なんかを読んでもTestに関する箇所に関しては飛ばしていたので、今日読んでみて分かったことメモ。 具体的には「続・初めてのPerl」17章 基本的なテスト、18章 高度なテスト。 17.1 テストすればするほどコードはよくなる ですよねー。 分かって…

memcachedやってみた1

WEB+DB PRESSのバックナンバーを幾つか買って読んでたら前から気になってたmemcachedの記事が載ってたので自分でもやってみたその記録。 以下はそのmemcachedインストールまで。

memcachedやってみた2

memcachedやってみた1 - Perl日記の続き。 じゃあPerlで接続してみる。

Catalystやってみた

土曜日が休みだと心に余裕ができるなあ。 WEB+DB PRESSを初めて買って読んでたらCatalystとMoose使ってたコードが載ってて自分でもやってみたくなったのでやってみたのでその記録。 とりあえずCatalystを自分のMacに入れて、適当に雛形を作る。 % mkdir cata…

応用情報技術者試験

合格した。

XSやってみた

以前、print()のオーバーライドができないと書いた際、id:tokuhiromさんとid:gfxさんが「PL_check」を使うとはてダで書かれていて、「?」状態だった僕です。 この単語で検索したら一番上にPL_check hack - daily dayflowerが見つかって、ああXSかあ、と。 …

map()で少しはまった

map()について少しはまったのでメモ。 AI_1 UEO_1 AI_2 UEO_2 AI_3 UEO_3..... 上記のような要素が入った配列を作成したい。 で、初めは以下のように考えた。 my @array = map { "AI_$_", "UEO_$_" } 1 .. 10; print "@array\n"; しかしこれではsyntax error…

哀川潤台詞2

「胸を張れ、背筋を伸ばせ、自分を誇れ、敵に吼えろ俯くな! 諦めんな見限るなてめえで勝手に終わらせんな! 同情されてーんかガキども! 媚びんな気持ち悪い懐いてくんな、動物かてめーら! 自己陶酔に他人を巻き込むな、悩みたきゃ勝手に悩んでろ、相談す…

変数に値を入れるのはサブルーチン呼び出しよりも前に

おや?、と思ったことがあったのでメモ。 ある変数をサブルーチンより外側でサブルーチンよりも前に宣言して値を入れていて、サブルーチンはその変数を参照していて、しかしその変数よりも前にサブールーチンを呼び出すと、サブルーチン内で値が参照できない…

変数に値があるかどうか

いい加減以下のようなところが見るに耐えなくなったので。 $trgt; ........ # 何か処理 if ($trgt ne "") { EXPR; } このままuse warningsすると(されてなかったので)、$trgtに値が入っていない場合、以下の警告が出る。 #=> Use of uninitialized value in …

お仕事

いま、昔に書かれたPerlのCGIを書き直し中。 use strict; use warnings; されていないのももちろん、my()されてないわ、グローバル変数に値入れてサブルーチン終わってたりとか、500行近いサブルーチンとか、訳が分からない変数名とか、使ってない変数が冒頭…

哀川潤台詞

「つまりだな。これは天才ってのは何であり、そして何でないのかって問題なんだよ。無能だったらそれはそっちの方がいいんだ。とんでもなく鈍感だったなら。生きている理由をそもそも考えないほどに、生きている意味をそもそも考えないほどに、生きている価…

HTTP::Requestメモ

ちょっとしたWebクローラを作ろうと思って、HTTP::Requestを使ったんだけど、そのとき知ったメモ。 いつもは、こう。 use LWP::UserAgent; my $ua = LWP::UserAgent->new(); my $rq = HTTP::Request->new(GET=>'http://hogehoge.com/index.html'); $ua->requ…

追記

id:gfxさんから教えていただきました。 Re: CORE::もCORE::GLOBALも動かない? - Islands in the byte stream CORE::を使おうとCORE::GLOBALを使おうとオーバーライドできる組み込み関数とできない組み込み関数があるようです。 自分で設定できないようなプ…

CORE::もCORE::GLOBALも動かない?

「実用Perlプログラミング」の中にあったCORE::もCORE::GLOBALもうまく動かなかったのでメモ。 なぜだあああああ。 CORE:: CORE::は常に組み込み関数を参照します。 CORE::でprint()サブルーチンを書き直す。 package MyPrint; use strict; use base qw(Expo…

サブルーチンのアンパサンド「&」

Perlを勉強したときに覚えたサブルーチンの呼び出し方は、サブルーチン名の前に必ずアンパサンド(「&」)をつける、というものだった。 それから「初めてのPerl」を読み、「Perlベストプラクティス」を読み、でやっとその意味が分かった(と思う)のでメモ。 「…

配列の要素数だけを同じ文字で置き換える方法

タイトルそのまま。 たまたま perldoc perlop していたら、初めて見たようなことが書いてあったのでメモ。 例えば1〜10まで入っている配列の中身を全部「S」に入れなおす。 my @one_ten = 1 .. 10; foreach foreach my $int (@one_ten) { $int = 'S'; } 後方…

真賀田四季台詞

「そもそも、生きていることの方が異常なんです」四季は微笑んだ。「死んでいることが本来で、生きているというのは、そうですね……、機械が故障しているような状態。生命なんてバグですものね」「バグ? コンピュータのバグですか?」犀川は一瞬にして彼女の…

Perl環境変数$ENV{PATH_INFO}

Perlでファイルをダウンロードする方法を調べていたら、 環境変数$ENV{PATH_INFO}を使用するやり方を見つけたのでメモ。 $ENV{PATH_INFO} まず次のCGIを作る。 #!/usr/bin/env perl # down.cgi print "Content-type: text/html\n\n"; print $ENV{PATH_INFO};…

黒神めだか台詞

人吉 「だったらお聞きの通りだ 嫌われたもんだな めだかちゃん」 めだか 「構わんさ もとより私は 人から好かれようとは 思っておらん 私が人を 好きであれば それでよい」 ………………。 一瞬格好いい台詞かとおもったが、よく読んでみると その台詞はただのエ…