Perl

監視

なんか、こうログファイルの監視とか。 #!/usr/bin/perl use strict; use warnings; use File::stat; sub main { my $pattern = shift; my %file_size; if (not defined $pattern) { $pattern = '*'; } for my $file (glob $pattern) { if (-f $file) { my $…

evaluation

ref:http://d.hatena.ne.jp/mono-hate/20080709/1215621965 ref:http://d.hatena.ne.jp/mono-hate/20080708/1215534623 {と}の間はカンマを特別に評価しているようなので,特別な評価になるのでしょうか. 評価が特別というより、単に bareword が使えるとか…

multidimentional array

ref:http://d.hatena.ne.jp/mono-hate/20080708/1215504041 めんどいので、解説なしで。 % perl -e '$a[0, 1] = 10; print $a[1], $/;' 10 % perl -w -e '$a[0, 1] = 10; print $a[0, 1], $/;' Multidimensional syntax $a[0, 1] not supported at -e line 1…

Perl の参照

Perl ってリファレンスじゃないのに、妙なところで C++ のリファレンスみたいな挙動することがあって、気持ち悪いとか思うのだが、同じことを思う人はいないだろうか。 use strict; use warnings; use YAML; my @a = (1..10); for my $a (@a) { $a = $a * $a…

Darts

ref:404 Blog Not Found:perl - Text::Darts 0.02 Released! アーーー。 ref:http://d.hatena.ne.jp/odz/20070927/1190917745

XML2JSON for MyMiniCity

ref:404 Blog Not Found:今日のMyMiniCity - 2007.12.21 + 野良API ref: 勝手に添削 - myminicity を Web::Scraper - Bulknews::Subtech - subtech XML を返す API(?) があるのになんでわざわざ scrape してんの? #!/usr/bin/perl use strict; use warnings…

MOMOTAROH

ref:404 Blog Not Found:perl - Lingua::JA::Kana released! とりあえず、 is romaji2katakana('MOMOTAROH'), 'モモタロウ'; が fail したので悲しかった。 しかし、こういうネタを書くと年齢が疑われそうだな。最近、続編が出ているらしいけど。*1 *1:分か…

ファイルの読み込み

ref: join ("", <DATA>) か local $/ か ? - あじゃぱー いや、これ benchmark になってないから。試しにこんなのを書いて実行してみると分かる。 use strict; use warnings; print join('', <DATA>); print do { local $/; <DATA> }; __DATA__ sample program for reading __D</data></data></data>…

Re:ワンライナー

ref:Seeking for my unique color. - ワンライナー おもしろい。map より for のほうがいい気もするなぁ。ワンライナーならchompの引数省略しちゃっていいんじゃね。 perl -ne 'chomp;print qq/"$_",/ for split /,/'あと、-F オプションで受け付けるのは正…

部分文字列頻度計数

ファイルの中にある文字列が何回出現するか数えたいとする。 sub count_occurrences { my ($search, $text) = @_; my @m = ($text =~ /\Q$search\E/g); return scalar @m; } さて、このサブルーチンはうまく動くだろうか。うまく動かないとすれば、何がまず…

Scalar 変数の型を取得する

ref:Kazuho@Cybozu Labs: DBI::Printf - A Yet Another Prepared Statement ref:404 Blog Not Found:perl - $scalarの中身が数値か否かを判定する Perl は数値と文字列の区別が無いと思われがちだけど、それは Perl から区別する方法がないだけで、C のレベ…

はてダラ 改造

やっぱり、パスワードの入力ではエコーバックしないでほしいよなぁ、ということでいまさらながら改造。要 Term::Prompt。 --- hw.pl.orig 2007-07-20 05:24:32.000000000 -0900 +++ hw.pl 2007-07-20 05:38:43.000000000 -0900 @@ -23,6 +23,7 @@ use File::…

正規表現で Unicode Block

ref:神様なんて信じない僕らのために - すべての漢字を取り出す正規表現 そういや、Python の正規表現エンジンって、named group は使えるけど、Unicode Block は使えないんだっけ? Perl や Java なら Unicode Block が使える。 use strict; use warnings; …

App::Ack と IO::Interactive

ref:IT戦記 - Mac だと App::Ack が白黒だったので、場当たり的な対処をしました。 いや、これ ack のバグじゃないかな。Mac とか関係ないっぽい。 ack-1.58 まで出力が端末かどうかの判定は my $is_tty = -t STDOUT; だったのが、ack-1.60 で突然 IO::Inter…

Perl で FizzBuzz

いやぁ、いろんな方法があるねぇ。もう完全にネタだけど。ということで Perl 版。 use strict; use warnings; print [$_, 'Fizz', 'Buzz', 'FizzBuzz']->[($_ % 3 == 0) * 2 + ($_ % 5 == 0)], "\n" for 1..100; 昨日の MySQL 版と同じアプローチだけど、こ…

簡易HTTPサーバ

ref:naoyaグループ - naoyaの日記 - 指定したパスをルートにして公開する httpd とりあえず実体参照変換はいれたほうがいいんじゃないかとか。 --- httpd.pl.orig 2007-05-14 00:46:06.000000000 +0900 +++ httpd.pl 2007-05-14 00:53:34.000000000 +0900 @@…

PerlOO

ref:メニスカス@翠婚 - つまりあれ Perl のオブジェクトって一言で言ってしまえば package に bless されたリファレンスで、 $obj->method の形式でパッケージのサブルーチンを呼べるというだけなんでは。 あと、実は method $obj と $obj->method は同じこ…

Devel::Size

Devel::Size 0.67 がテストでこけるなぁ、と思ったらだれもテストをPASSしていない罠。 ちょ、作者テストしてるのか?0.65 と 0.04 もすごいことになっているね。

正規表現の否定 #2

ref:Unknown::Programming - 文字列の先頭がある単語で始まらない正規表現って ref:odz buffer - 正規表現の否定 ちょいと考えてみたんだけど、任意の正規表現にマッチしない正規表現ってのはこうすれば作れるんではないだろうか。 sub negative_regexp { my…

正規表現の否定

ref:Unknown::Programming - 文字列の先頭がある単語で始まらない正規表現って うーん、このケースでは普通に qr/^(?!foo)/ でいいんではなかろうか。 qr/^(?:(?!foo).)+.*/ とする理由がよくわからない。

エンコーディング変換の高速化

ref:404 Blog Not Found:perl tips - Encodeを速く使う方法 当然の話だけど、対象の文字列が長くなると、Encode::encode も、$e->encode も大差ない。 ちょっといじって試してみる。 use strict; use warnings; use Benchmark qw/cmpthese timethese/; use u…

それ Regexp::Assemble

ref:ここギコ!: 安易なループは慎むべきですね ref:jnaoyaのはてな日記 - 添削その2 ref:404 Blog Not Found:perl - 勝手に添削^2 - loop control ん?ループ云々を抜きにして、こういうのは Regexp::Assemble の出番じゃないの?添削だから?それともパフ…

ニコニコ動画ダウンローダ with Irvine

Irvine を使ってニコニコ動画の flv をダウンロードする Perl スクリプト。こんな感じに使う。 perl NicoVideoDownloader.pm -c cookies.txt <ニコニコ動画のURL>Cookie は Firefox なんかの Mozilla 系の Cookie を持って来る(プロファイルフォルダ以下の c…

相変わらず

ref:Perl, Python, Ruby の比較 以前の指摘で、一部訂正されたみたいなんだけど、相変わらずだったりするようで。 Perl: 引数をフラットなリストに変換して値渡し。参照渡しをするにはプロトタイプを用いる。少し複雑。 Python: 参照渡し。ただし、変更不能…

ディスパッチテーブル

ref:ブログが続かないわけ | perl の作法 #5 ディスパッチテーブルの活用 別に subroutine reference を使うこともないような。 my %colors = ( black => '000000', red => 'FF0000', green => '00FF00', blue => '0000FF', white => 'FFFFFF', ); sub color…

GET と lwp-request

ref:ウノウラボ Unoh Labs: ウェブアプリ開発を助けるGETコマンドを使ってハックしてみよう!! 説明がないようだが GET は 標準のコマンドな訳ではなく*1、Perl モジュールの LWP(libwww-perl) に付属してくるコマンドで、同じく LWP 付属の lwp-request への…

それ use open

しかし、 test.pl < utf8.txtは行けるが、 test.pl utf8.txtはだめ。 前にも書いたけど、引数を指定した場合、<> は STDIN じゃないですから当然ですね。とりあえず use open IN => ':utf8'; とするほうが、スマートといえばスマートか? や、Encode::decode…

PerlIO Layer で複数のオプションを使う

PerlIO::gzip を使うと、 open my $fh, '

勝手に添削

ref:Darkness:がんばってますよ? - livedoor Blog(ブログ) 勝手に人のコードを添削。 sub get_chisquare($$$$) { my ( $s_real, $s_prediction, $b_real, $b_prediction ) = @_; my $sum = $s_real + $s_prediction + $b_real + $b_prediction; my @Data …

それ内部イテレータ

ref:404 Blog Not Found:perl - 格子点を生成する関数の生成 うはは、無理矢理。コードを生成して、eval するなら、そりゃそっちのが速いよなぁ。 つうか、逆転の発想というより、そりゃ外部イテレータが内部イテレータに変わっているって話だ。いやまぁ、別…