2009-01-01から1年間の記事一覧

quotemeta \Q

#!/usr/bin/perl use strict; use warnings; my $string = 'foo ^bar baz'; my $regex = '^bar'; $string =~ s/$regex//; print $string . "\n"; 実行結果 foo ^bar baz#!/usr/bin/perl use strict; use warnings; my $string = 'foo ^bar baz'; my $regex =…

ハッシュのリファレンスに持ったファイルハンドルを処理するとき

そういうときは<>演算子じゃなくて、readlineだよってお話。 #!/usr/bin/perl use strict; use warnings; our $test = './test.txt'; my $hashref = fh_open($test); while(<$hashref->{handle}>){ print; } exit(); sub fh_open{ my $filename = shift; ope…

Gearmanによるキューイング

公式:http://gearman.org/ キューイングを使うメリット ウェブアプリケーションを対象として考えています。 処理を分別できる。 今すぐ必要な処理、後回しにして良い処理、負荷が高い処理、負荷が低い処理を分別することができます。 ユーザがすぐに確認しな…

イントロスペクション

Perlはグローバルな(myで宣言していない)変数のルックアップにはシンボルテーブルが使用されます。 シンボルテーブルとはハッシュであり、キーと値の対の集合です。 シンボルテーブルのキーとは変数名であり、値は変数名のグロブです。例えば以下のようなコ…

perlで電卓

コーディング中に電卓使いたくなることってありますよね。 % perl -de 1 Loading DB routines from perl5db.pl version 1.31 Editor support available. Enter h or `h h' for help, or `man perldebug' for more help. main::(-e:1): 1 DB p 10*10 100 DB …

日本語の取り扱い。

前提知識 Perlからみると文字列は2種類あります。ひとつは、僕たちが見ている文字列と一緒で、Shift-JIS、EUC-JP、UTF-8といったエンコードされた文字列です。これをバイト文字列と呼びます。もうひとつはバイト文字列をデコードして作成されるPerlの内部表…

In-Memory File

参考:http://blog.livedoor.jp/dankogai/archives/50681645.htmlPerl5.8以降からIn-Memory Fileという機能が使えるんだそうです。 #!/usr/bin/perl use strict; use warnings; use Devel::Size qw(total_size); my @array = (0x21..0x7e); my $memfile; ope…

Perlのメモリ管理

Devel::Sizeというモジュールをみつけた。 http://perldoc.jp/docs/modules/Devel-Size-0.58/Size.podこれを使えばPerlの変数がどの程度メモリを喰っているのかを調べることができる。 というわけで以下のようなコードを書いてみた。 #!/usr/bin/perl use st…