Perl

今日のワンライナー

perl -ne '/Host (\d+\.\d+\.\d+\.\d+) has been blocked/&&push(@{$h{$1}},$_); END{map{printf"%d:%s\n",@{$_}}sort{$b->[0]<=>$a->[0]}grep{$_->[0]>1}map{[scalar@{$h{$_}},$_]}keys%h}' ~/Mail/root/swatch/*これは何をしているかというと、 Host xxx.x…

プログラミング言語で顔文字

s/"/\"/g実際のソースコード*1より。デバッグしている最中に顔に見えることに気がついてちょっとウケた。残念ながら日本語Windowsだとフォントの関係でそうは見えないかもしれないけど。 *1:文字列の中の引用符の前にバックスラッシュを挿入する処理の部分

Perlで並行処理

Perl 5.6だとスレッドが使えなかったので、forkして子プロセスを作るという伝統的なスタイルで実装した。単にforkしただけだと、子プロセスに値を渡すことはできても戻り値を受け取ることができないから、その部分にプロセス間通信(Unix-Domain TCP)を使って…

RSSツールのテスト用サーバー

http://naoya.dyndns.org/~naoya/mt/archives/001473.html結城さんのhttp://www.hyuki.com/tf/20041209161614.htmlという記事を受けて。 my $developer = shift || 'naoya';この書き方*1、カッコいいなあ(笑)。 *1:注:Perlをよく知らない人へ。これは要する…

一時間で覚える Ruby

http://mayah.jp/archive/programming/ruby.html (from http://www.dioscroy.ne.jp/~wataru/tdiary/?date=20041203#p01)今までRubyはPerlの変種という認識だったけど、これを読んだらむしろLispに近いのかもしれないと思うようになった。より正確には、Ruby=…

CGIで大ハマリ

今までいろいろCGIを作ってきて、CGIもPerlも大抵のことは分かってるつもりだったんだけど、久しぶりに大ハマリしてしまった。 use CGIするとdieがCGI::Carp::dieに置き換わる(ことがある) いつも全体をevalで囲ってデバッグにdieを使っているんだけど、突…

はてなアンテナリーダー

こんなスクリプトを作ってみた。 これは何か? はてなアンテナの設定をバックアップする。 詳細 はてなアンテナには、lirs形式、RSS形式などでアンテナデータをエクスポートする機能があるが、グループや更新チェック範囲などは保存されない。このスクリプト…

Template::Extract + XML::RSS でRSS 生成

http://naoya.dyndns.org/~naoya/mt/archives/000833.htmlそれのトラックバック記事 お気に入りサイトのRSSを自作して楽しむhttp://www.banana21.com/blog/archives/0401140254.html とりあえずリンク。はてなアンテナの代替となるものを以前から探していた…

Perl to Lisp

文字列処理はだいたいPerlでやることが多いんだけど、諸事情でEmacs上でできた方が便利なときがあって、そのためのメモ。 m// ==> string-match s/// ==> string-matchしてreplace-match split ==> split-string join ==> mapconcat while (<>) {} (defun fo…

Lisp的Perlコーディング

$buf=pack("C*", map { ord(getc(IN))^($_&0xff) } (0 .. $size-1)); foreachでもできるけど右辺に余計な変数がないのが美しい。TMTOWTDI。

Maintaining Regular Expressions

http://www.perl.com/lpt/a/2004/01/16/regexps.html(from: www.textfile.org)Regexp::English ってそれ自体が別の言語みたいだ。この辺、なんとなくLispっぽくて面白い。

Perlで2つの配列の両方に含まれる要素を、foreachを使わずに抜き出す方法は?

http://d.hatena.ne.jp/koseki/20031015#1066180360 foreachを使わないっていうのが何を意味しているのかいまいち不明だが、速度を気にするならハッシュを使って foreach (@a) { $h{$_}|=1 } foreach (@b) { $h{$_}|=2 } grep { $h{$_}==3 } keys %h; とすれ…

洗練されたPerl: ワンライナー101

http://www-6.ibm.com/jp/developerworks/linux/010706/j_l-p101.html Perlのワンライナーは自分も良く多用する。かなり複雑なことがシェルからのたった1行のコマンドでできるからハマると病み付きになる。

JAPH

http://www.cpan.org/misc/japh これも一種のアスキーアート?

perlモジュールをrpmパッケージ化する

http://docomo.dyndns.org/module2rpm.htm

Perl Design Patterns

http://www.perl.com/pub/a/2003/06/13/design1.html DP/MLからの情報。簡単に読んだ限りの理解では、Perlはオブジェクトじゃなくて言語仕様でパターンをサポートしてますよという話。 "If a pattern is really valuable, then it should be part of the core…