perl

プロセスのCoW共有しているメモリのサイズ

もはや伝説と化した記事がありますが、 http://d.hatena.ne.jp/naoya/20080212/1202830671諸々の都合でLinux::Smaps入れると商用と開発入れなきゃいけないし、 管理上一台だけ入れるって訳にも行かないし、閉ざされた世界なのでcpanminiこしらえなきゃ・・・…

vimでpsgiファイルをperl syntax

するには~/.vimrcに syntax on filetype on au BufNewFile,BufRead *.psgi set filetype=perl と書く。

IPアドレスのレンジをパパッとライス

パパッとライスはGoogleIMEが勝手にやった事なので気にしないで下さい。という事でIPアドレスのレンジで固まる事が多々あります。 何かっていうと192.168.0.0/24とかだとピンと来るんですが 192.168.0.64/26とかだと若干固まり192.168.0.0/30とかだと 完全に…

今時点のタイムスタンプ出したいだけならPOSIXで良いんじゃないかと。

明けましておめでとうございます。 今年は週1本でブログを書いて飛躍の年としたいと思っております。という訳で新年1発目はド基本の日付関連。 気持ちは分かるんですが、やっぱり今時点のタイムスタンプ出したいだけならPOSIXで十分じゃ無かろうかと思う訳で…

startup.plに書いておいた方が良い事。

わたくしMy三国志というサイトをmod_perl+Apacheでやってるんですが、やはりネックになるのがメモリです。やりくりにはいわるゆるstartup.plの最適化が必須という事で結構色々やってます。結構、枯れてる話題で色んな情報が転がっていますが、参考までに当サ…

grepとzgrepの速度差

この前、周りで話題に出てたのでgrepとzgrepのベンチをとってみた。 サンプルはアクセスログでYahooという文字列をgrepする。ファイルは11Mくらい。要点は圧縮しない状態だとどれくらい速いのかしら?という事。 容量を圧迫する事を犠牲にしてでも良いくらい…

コマンド実行後の標準出力を改行そのままに喰わせたい

何が困ったというとbashの下の箇所 any trailing newlines deleted. 英語良く分からないけど改行削除しちゃうぜ!って事でしょう。多分。 で、どういう時かっていうとバッククォートで実行した時。$()も一緒ね。仰るとおりという↓のテキストを $ cat text.tx…

高負荷の時どうなる?どうする?

あくまで非力なH/Wでしかも1台しかない状況で一人しかいないんだけど色々都合があって24時間は貼り付いていられない状況で何とかしないといけないけどどうしたものかという人向けで。負荷が高い状態でジャンジャンリクエスト受け付けてCPUくってswapくって瀕…

shiftを省略した時の対象は@_だけじゃないのね

へぇー的なネタ。よく my $self = shift; というコードがありますが、これは my $self = shift @_; の省略形な訳であります。で、引数省略時は常に@_が対象となるのかと思いきやそうでは無かったという話。 1.pl ↓のコードをご覧下さい。() use strict; use …

ほんとのスーパークラス

↓のような感じで他のパッケージにメソッドを生やすってのはよく有る手法なんですが sub import { my $class = shift; my $pkg = caller; no strict 'refs'; *{"$pkg\::method"} = \&method; } id:hirataraさんの↓で述べられてありますが http://d.hatena.ne.…

Mooseかじりかけ

http://search.cpan.org/~stevan/Moose-0.40/lib/Moose.pm 何かと話題のMooseかじりかけです。そもそも何?から入ってみました。自分用。 A postmodern object system for Perl 5という事でperl5OOを今風に書けるよ!って事でしょうかね。とりあえず書いた …

Filter::Simpleでセイセーイ!

↓の辺とか http://search.cpan.org/~ingy/Inline-YAML/ ↓の辺で http://search.cpan.org/~kazuho/Filter-SQL/Filter::Simpleというモジュールが使用されていてなんだかかっちょいいのでやってみました。 http://search.cpan.org/~dconway/Filter-Simple/lib/…

++とか--が前にあったり後ろにあったり。

こういうの知らないと恥ずかしいよ。ってか知らなかったorz。恥ずかしい。何かと言いますと $i++; と ++$i; の違い。検証用 use strict; use warnings; use feature qw(say); { my $i = 0; my $res = ++$i; say $res; } { my $i = 0; my $res = $i++; say $r…

__ANON__ってさ

パッケージ名::__ANON__ってよく見かけると思うんですが、何かと言うと一言で言えば無名サブルーチン。ってのは分かってはいたんですが、確かめた事が無かった(と思う)ので実際確かめてみたんですのよ。 use strict; use warnings; use Carp qw(croak); my $…

実は空文字かundefでblessすると勝手にmainにしてくれるんだ

日々ちょっとした発見ってあるもので、お題目通り空文字かundefでblessするとそのオブジェクトはmainパッケージとして扱われるようです。コード use strict; use warnings; use Data::Dumper; my $self = bless({foo => 'bar'}, undef); print Dumper $self;…

CPANで発見!魯智深っち

http://search.cpan.org/~samtregar/何気なく見てたら・・・魯智深??これ魯智深だよね?

TemplateToolkitをより早く!!・・・できなかったorz

ティーティーのさぁーディスクアイオー減らしたら早くなるんじゃね?と言った事を思い立ちやっては見たものの、ごめんなさい、見くびってました、出直して来ます。というお話を晒させていただきます。 まず、何かと言いマスト TemplateToolkitのオプションで…

あけましておめでtie

最悪な駄洒落で2008年の幕が上がりました。 新年早々、富士山を拝んで己の矮小さを身に染みて参りました。皆様改めてあけましておめでとうございます。マツモです。本年の書初めはtieにしてみました。きっかけ http://search.cpan.org/~audreyt/selfvars/ se…

コードリファレンスはクラスかオブジェクト越しに呼ぶと勝手にデリファレンスしてくれるの?優しいね。

心温まる優しさに触れた今日と言う日にありがとう。マツモです。物語の始まり何気なく http://search.cpan.org/src/TOKUHIROM/Class-DBI-Plugin-RetrieveFromSQL-0.02/lib/Class/DBI/Plugin/RetrieveFromSQL.pm を見てて違和感のあるコードに遭遇。 my $supe…

天地を喰らうの能力値の考察

ああそうですよ。どうせ暇ですよ。冬の夜長に暇ですよ。ファミコン版「天地を喰らう」って知ってます? ご存知で無い方は↓をご覧下さい。興味無い方はごめんなさい。 何が言いたいかと言うとこのゲームって能力値の上限が255なんですよ。100とかじゃなくて。 …

ハッシュをスカラーコンテキストで評価したものの正体。

正体のわからぬ物を発見。ある種UMAですUMA。何かと言いますとid:hirataraさんのハッシュの判定は裸でを見てたら何か見慣れぬものを発見。 disp : 1/8↑ここ。ちなみに $hoge{abc} = 'def'; printf("disp : %s\n", scalar(%hoge)); ↑この結果です。気になって…

それでもやっぱりTemplateToolkitがすき

TemplateToolkitが大好き。TemplateToolkit無しでは生きられない。TemplateToolkitは僕の人生に楽しみと時間を与えてくれました。そんなTemplateToolkitに日々感謝の念を忘れない僕ですが、今回ばっかりはちょっと我が目を疑う出来事に遭遇。Template::Plugi…

Term::ReadLineが結構楽しい

CPAN.pmを何気なく見ていたらTerm::ReadLineなるものを発見。恥ずかしながら初見でしたが何やら楽しげなパッケージ名なので遊んでみました。名付けて対話型武藤。まず結果からご覧いただきましょう $ ./muto.pl 武藤 : 武藤 : name 武藤 敬司 武藤 : kana ム…

JSON::Syckの話

普通が一番。普通って難しい。普通って何だろう。 といった感じで普通にプログラム書いてたら以下のエラーに遭遇。 結構頻発しそうな気がするのでメモっときます。まずエラーの内容 Dumping circular structures is not supported with JSON::Syckと出まして…

YouTubeのURLからIDを引っこ抜く

って my $regexp = qr{^http://(?:jp|www)\.youtube\.com/watch\?v=([^&]+)}; こんな感じか。 ほんとか?

Template::Providerのオプション

少々はまったのでメモ。Template::Providerのサブクラスを使用する場合のオプションに指定方法について。 (この辺の人たち。)はじめはてっきり use Template::MyProvider; # Template::Providerのサブクラス my %tt_opt = ( ABSOLUTE => 1, COMPILE_DIR => '…

パッケージ名で地味にはまった。

世の中切ない事はあるもので、先日切ない状況に陥ったのでメモがてら晒して起きます。package名は皆さんきちんとした命名規則で運用されてると思いますが、歴史的経緯によりpackage名が自由に付けれないという状況に陥ってる方もおられる筈です。で、そんな…

配列代入のコスト

調べものをしていたら配列の作成は結構コストを食うようだというのに気付きました。 ベンチとってみたので晒してみます。サンプルデータは例によってキン肉マン。 #!/usr/local/bin/perl use strict; use Benchmark qw(:all); my @list = <DATA>; # 運命の5,000王</data>…

Class::OOorNoでゴネゴネ

Class::OOorNOなるものを発見したので、ちょっとやってみました。Class::OOorNOはその名の通りオブジェクト指向か否かを吸収してくれるモジュールです。 オブジェクト呼出しでもクラス呼出しでもサブルーチン呼出しでも動くようにしたい!という時に重宝する…

DBIx::Class::FromSledgeやってみました。

DBICやらねばやらねばと思っていたところで、DBIx::Class::FromSledgeというモジュールがリリースされたとの事で折角なのでDBICも合わせてやってみました。DBIx::Class::FromSledgeは、create_from_sledge、update_from_sledgeの二つのメソッドが有り、この…