Perl
何故かPOEをリファクタリングする指令を受けたのでなんとなくAnyEventを練習しています。 というわけで復習を兼ねての記事です。 サンプルコード package Model::Person; use strict; use warnings; use Carp (); use Class::Accessor::Lite; Class::Accesso…
概要 Test-Memcached-0.00003をroot権限でinstallするとRunning make testで失敗するです。 t/002_basic.tがこける cannot open port: 10001 at /root/.cpan/build/Test-Memcached-0.00003-QRHVb2/blib/lib/Test/Memcached.pm line 184. cpan-testers見てみ…
splitって以外と便利なんだなと思った記事です。 そもそも何をしたかったのか test用のdumpデータが欲しいけど、ひとつのテーブルのinsert文があればよい。なんだけど、受け取ったdumpファイルが全DB, 全talbeのinsert文を含み、かつ巨大です。mysqladminでd…
ファイルシステムがRead-Only になってしまうとログの書き込みすらできないから大変な事になるので検出しようと思ってNet::SSHでスクリプト書いたらstatusエラーに遭遇したが、テストを成功させるにはこうすればいいよ、という事を学んだ件です結論から言う…
ビット演算でマスキングしてファイル種別を判定する方法を紹介します。 マスキング 次のような郵便番号があります。 100-6002 100-6009 100-6090 101-0029 101-0063 ...100-6002、100-6009と100-6090は東京都千代田区霞が関霞が関ビルを表わしています。 こ…
InsideOut Perlを使う会社が新人にどこまで教えるかの指標としてClass::Data::Inheritableを説明できる、という事を目安にしているという記事なんですがhttp://d.hatena.ne.jp/fbis/20060510/1147253289 なんだかんだいって独学でそこにたどり着くのはしんど…
GearmanとTheSchwartz Gearmanに投げた仕事は無事完了したかどうかはよくわかりません。 途中でサーバーダウンしていた場合にどの処理が完了していて、どの処理が未完了なのか、わかりかねます。 TheSchwartzは引き受けた仕事を逐一DBに記録します。なので完…
近年のWeb業界ではリクエストがある度にすべてを処理してレスポンスを返すのではなく、一部の処理をジョブキューに投げるなりして負荷軽減を試みるのが定石となりつつあるような、そうでないような、そんな時代に生まれたPerl初心者のために、Gearmanを使っ…
&&と||で三項演算を使う なんだか酒と泪と男と女を思い出してしまうタイトルをつけたわけですが、 返り値が0か1かを返す処理を書く場合に&&と||は重宝します。私はよく三項演算子をセットにして使います。三項演算子は書かなくても良いかもしれませんが、後…
以前アクセッサを自動生成する方法を紹介していたのですが、今回はAUTOLOADを使用した場合を紹介します。 http://d.hatena.ne.jp/okamuuu/20100417/1271479559 AUTOLOADとは ある名前空間に存在するメソッドを実行するように指示したのに、そのメソッドが定…
fushihara++ my $name = 'ホゲホゲLv1'; $name =~ s/Lv(\d+)/Lv@{[$1+1]}/; warn $name; # ホゲホゲLv2
1. テストコード use strict; use warnings; use utf8; use Test::Base; use CMS::Lite::Extend::Text::Hatena; filters { text => ['my_parse', 'omit_indent', 'chomp'], html => ['omit_indent', 'chomp'], }; sub my_parse { CMS::Lite::Extend::Text::H…
前回、前々回の日記でシンボリックテーブルとグロブを紹介したので、クロージャーとグロブ割り当てを利用したサブルーチンの紹介をしたいと思います。 レキシカル変数を不老不死にするクロージャー Perlではグローバル変数とレキシカル変数が存在しています…
おさらい シンボルテーブルは普通のPerlハッシュで実装されています。 Perlのhogeという名前の変数には$hoge, @hoge, %hoge, &hoge, ファイルハンドルのhoge, ディレクトリハンドルのhogeなどがあります。 これらのhogeは物理的にはバラバラの場所に離れてい…
おさらい シンボルテーブルは普通のPerlハッシュで実装されています。 Perlのhogeという名前の変数には$hoge, @hoge, %hoge, &hoge, ファイルハンドルのhoge, ディレクトリハンドルのhogeなどがあります。 これらのhogeは物理的にはバラバラの場所に離れてい…
シンボルテーブル、名前空間、グロブ シンボルテーブル Perlで宣言される変数にはグローバルなものと、そうでない、レキシカル変数*1とがあります。このグローバル変数には値が格納されています。この、グローバル変数の値が格納されている場所はシンボルテ…
このタイトルを一回書いてみたかった。社内には勉強会というものがあるんですが、この時間使って新人向けの資料でも作ろうかなと思いました。で、第一回はとりあえずperldocを紹介しようかと。Perlで分からない事がを調べる場合、こんな感じでしょ? google…
翌日 そもそも下記の件は <CMS::Lite::View::Head=HASH(0x821b0e8)::DATA>←なんかこうなる 「ref $_[0] ならいけるんじゃないかと…」というつっこみがありました。 結果 1. Baseクラスでref $_[0]を呼ぶように変更 package CMS::Lite::View::Base; use strict; use warnings; use utf8; use Text::MicroTem</cms::lite::view::head=hash(0x821b0e8)::data>…
yusukebe氏のListPod::App::Lite::Viewを見ていて良さげだったので真似してみた。1. Baseとなるクラスを用意しておいて、こいつをuseする package CMS::Lite::View::Base; use strict; use warnings; use utf8; use Text::MicroTemplate qw(build_mt); sub i…
もしもこんなエラーが出たら 以下のパッケージの処理中にエラーが発生しました: libxml-sax-perl libxml-simple-perl libxml-sax-expat-perlそっと次のスクリプトを保存して実行して下さい…1.適当にファイルを作成 % vi remove.pl2.内容 #!/usr/bin/perl -w …
YAML::Tiny気に入った。 #!/usr/bin/perl use strict; use warnings; use utf8; use Data::Dumper; use Devel::Size qw(size total_size); use FindBin qw($Bin); use Path::Class qw/dir file/; use lib dir($Bin, '..', 'lib')->stringify; use YAML::Tiny…
Linodeっていう海外のPVS使ってます。で、debian5.0でCPANインストールしようとするとやたらと Could not make: Unknown errorとかでます。そんな場合はこんな風にするとなぜかインストールできます。 % sudo su # cd /root/.cpan/build/TermReadKey-2.30-Nk…
DBIx::Class::TimeStampが便利です。いつもいつも使います。そして、いつもいつもSchemaファイルに設定を追加しています。じゃあ自動化しようと思いました。DBIx::Class::Schema::Loader::Baseをコピーしたpmファイルを、use libで指定した場所に配置します…
CodeReposのコミッタ権を取得して、SimpleCRUDというモジュール(?)をcommitしました。 やりたい事は 自分で簡単なアプリを作りたい、DB操作をするための管理画面が欲しい、でも実装が終わったら管理画面はもう要らない。 という自分のニーズを満たすためにつ…