2009-01-01から1年間の記事一覧
「Testをはじめてみた1 - Perl日記」 「Testをはじめてみた2 - Perl日記」の続き。 「なったふり」オブジェクト(モック)を使ってTest Test::MockObject mock...模造品、まがい物。 システムの一部のテストなんだけど、システムの他の部分を通るところもあっ…
前回「Testをはじめてみた1 - Perl日記」の続き。 Test::More等について箇条書き。 オブジェクト指向のテスト isa_ok() # 第一引数のobjが第二引数の所属クラスならok, 違うならnot ok 継承もok can_ok() # 第一引数のobjが第二引数のメソッドを呼び出せるな…
今まで参考書なんかを読んでもTestに関する箇所に関しては飛ばしていたので、今日読んでみて分かったことメモ。 具体的には「続・初めてのPerl」17章 基本的なテスト、18章 高度なテスト。 17.1 テストすればするほどコードはよくなる ですよねー。 分かって…
WEB+DB PRESSのバックナンバーを幾つか買って読んでたら前から気になってたmemcachedの記事が載ってたので自分でもやってみたその記録。 以下はそのmemcachedインストールまで。
memcachedやってみた1 - Perl日記の続き。 じゃあPerlで接続してみる。
土曜日が休みだと心に余裕ができるなあ。 WEB+DB PRESSを初めて買って読んでたらCatalystとMoose使ってたコードが載ってて自分でもやってみたくなったのでやってみたのでその記録。 とりあえずCatalystを自分のMacに入れて、適当に雛形を作る。 % mkdir cata…
合格した。
以前、print()のオーバーライドができないと書いた際、id:tokuhiromさんとid:gfxさんが「PL_check」を使うとはてダで書かれていて、「?」状態だった僕です。 この単語で検索したら一番上にPL_check hack - daily dayflowerが見つかって、ああXSかあ、と。 …
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…
「胸を張れ、背筋を伸ばせ、自分を誇れ、敵に吼えろ俯くな! 諦めんな見限るなてめえで勝手に終わらせんな! 同情されてーんかガキども! 媚びんな気持ち悪い懐いてくんな、動物かてめーら! 自己陶酔に他人を巻き込むな、悩みたきゃ勝手に悩んでろ、相談す…
おや?、と思ったことがあったのでメモ。 ある変数をサブルーチンより外側でサブルーチンよりも前に宣言して値を入れていて、サブルーチンはその変数を参照していて、しかしその変数よりも前にサブールーチンを呼び出すと、サブルーチン内で値が参照できない…
いい加減以下のようなところが見るに耐えなくなったので。 $trgt; ........ # 何か処理 if ($trgt ne "") { EXPR; } このままuse warningsすると(されてなかったので)、$trgtに値が入っていない場合、以下の警告が出る。 #=> Use of uninitialized value in …
いま、昔に書かれたPerlのCGIを書き直し中。 use strict; use warnings; されていないのももちろん、my()されてないわ、グローバル変数に値入れてサブルーチン終わってたりとか、500行近いサブルーチンとか、訳が分からない変数名とか、使ってない変数が冒頭…
「つまりだな。これは天才ってのは何であり、そして何でないのかって問題なんだよ。無能だったらそれはそっちの方がいいんだ。とんでもなく鈍感だったなら。生きている理由をそもそも考えないほどに、生きている意味をそもそも考えないほどに、生きている価…
ちょっとした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を使おうとオーバーライドできる組み込み関数とできない組み込み関数があるようです。 自分で設定できないようなプ…
「実用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}を使用するやり方を見つけたのでメモ。 $ENV{PATH_INFO} まず次のCGIを作る。 #!/usr/bin/env perl # down.cgi print "Content-type: text/html\n\n"; print $ENV{PATH_INFO};…
人吉 「だったらお聞きの通りだ 嫌われたもんだな めだかちゃん」 めだか 「構わんさ もとより私は 人から好かれようとは 思っておらん 私が人を 好きであれば それでよい」 ………………。 一瞬格好いい台詞かとおもったが、よく読んでみると その台詞はただのエ…
続・lsコマンドをPerlで - Perl日記 この時の後回し課題。 Perlで実行時にパラメータを引数として扱うための標準モジュールは2つあり、Getopt::StdとGetopt::Longがある。 「Perlクイックリファレンス」を見たら、次のように書かれていた。 $result = GetOpt…
Cookie設定をPerlで - Perl日記 前回の続き。 Cookieに複数の値を設定するためには、「Set-Cookie文」をその都度出力するしかないらしい。(意外と力づくというか原始的な印象だ) というわけで、そのサブルーチンを書いてみる。 ただし1ドメインにつき20個以…
PerlでCGIを作った時のCookie設定方法を調べてみた。 とりあえず複数ではなく、単体の値をセットする方法。 1.自力 まず、基本。べた書き。 sub set_cookie { my ($name, $value, $attr) = @_; # URLエンコード $value =~ s/(\W)/sprintf('%%%02X', unpack('…
lsコマンドをPerlで - Perl日記 前回の「ls」コマンドをもう一度やってみた。 画面幅の取得は「Term::ReadKey」を使えばいいみたい。 でもPerl5.8.5では入ってなかったので、一応eval()。 「Getopt::Std」もまた今度。 #!/usr/bin/perl -T # ls.pl # "ls"コ…
「ls」コマンドをPerlで実装してみた。 端末の画面幅の取得の仕方がわからなかった。 なのでとりあえずファイル名出力列は4行固定。 汚染チェックもいるのか不明。 #!/usr/bin/perl -T # ls.pl # "ls"コマンドをPerlで実装 use strict; use warnings; use Li…