ハッシュと配列の参照が入り交じったような複雑なデータ構造の、全value を均等に加工したかったので次の様にしてみました。 (中略) すでに似たモジュールがある気が激しくしています! ご存知でしたらぜひ教えてくださいませ。 [perl] 複雑なデータ構造のvalue を一気に書き換える方法 - harupiyoの日記 ということでData::Visitor::Callbackがズバリそれにあたるものじゃないかなーと。 use strict; use warnings; use Data::Dumper; use Data::Visitor::Callback; my $rh_testdata = { 'a' => 1, 'b' => { 'aa' => 1, 'ab' => [ 1, 2, 3, \ 'test', 5 ], 'ac' => 3, }, 'c' => 3, 'd' => 4
MySQL::Sandbox - Yet Another Hackadelic の続きです。 make_replication_sandbox でレプリ環境をサクっと作る レプリ環境もサクっと作れます。前と同じバイナリがあるとしたら、 $ make_replication_sandbox /home/zigorou/tmp/mysql-5.0.82-linux-i686-glibc23.tar.gz executing "clear" on slave 1 executing "clear" on slave 2 executing "clear" on master installing and starting master installing slave 1 installing slave 2 starting slave 1 . sandbox server started s
MySQL::Sandbox はお手軽に MySQL のサーバーを立ち上げるツールで、ちょっとしたテスト環境を構築するとかに非常に便利なプロダクトです。 とりあえずインストール $ sudo cpan -i MySQL::Sandboxでインストールしてから OS ごとの実行バイナリをダウンロードします。自分の手元の VM は CentOS 5.2 なので、mysql-5.0.82-linux-i686-glibc23.tar.gz をダウンロードしました。 まずは レシピ の最初にあるように make_sandbox してみます。 $ make_sandbox /path/to/mysql-5.0.82-linux-i686-glibc23.tar.gzそうすると /home/zigorou/sandboxes 以下にサンドボックスが出来てます。ついでに mysqld も立ち上がっていま
Plaggerについてはこちらをご覧いただくとして。 Plaggerの機能を一言でまとめると「情報を収集・加工し任意の形で出力できるプログラム」です。Plaggerは、豊富なプラグインが用意されているのが特徴です。自分がやりたいことに合わせて、それらのプラグインをレゴブロックのように組み合わせ、オリジナル機能を持つPlaggerを作成することが可能です。 一足早く「Plagger」の便利さを実感してみよう 流行に乗り遅れなtoritoriさん。*1 PlaggerのソースはPerlの勉強にもかなり良いとの事で、 機能+ソース読みで勉強中です。 Plaggerお勉強リンク一覧 Plagger Trac http://plagger.org/trac/wiki/WikiStartJa Plaggerグループ http://plagger.g.hatena.ne.jp/ Shibuya.Plag
これまでに翻訳したpod一覧からどうぞ。 予定より10日早く終わりましたが、ページ数が多かったので結構しんどかったです...(@_@;)
Catalyst は Web アプリケーションを開発するときに、フレームワークとしてとても便利です。 ひとつの Web サービスを作ろうとすると、以下のような様々な処理が必要になってきます。 ユーザーに見せるWeb インターフェイス アクセス集計などの日次バッチ処理 アバター画像などの生成・変換処理 ユーザー通知やメルマガ配信などのメール送信処理 これを、すべて Catalyst にやらせてしまうと、プロセスが太りすぎてしまいますし、アプリケーション設計として不自然です。 結論から先に言ってしまうと、モデルやロジックだけでなく、ヴァリデーション処理なども Catalyst から分離してしまい、Catalyst はリクエストのディスパッチと View だけを担当するのがスマートで、拡張・メンテナンス・テストがしやすいやり方なのかなと、最近うっすらと考えています。Catalyst 在りきではな
http://search.cpan.org/dist/PDF-API2/ PDFファイルを生成する必要があったので、cpanを眺めていたら、PDF::API2というモジュールがありました。 これまでPDFファイルの自動生成というと、pdfjやpdflibの名前を聞いたことがありますが、PDF::API2でも十分に使えるように思えます。 今回は、予めprimoPDFで作成(印刷?)した帳票上(というより背景として?)に、文字や写真を追加してみました。 #!/usr/local/bin/perl use strict; use warnings; use encoding qw/cp932/; #cp932以外では機種依存文字がpdfに出力されない? use PDF::API2; use PDF::API2::Resource::CIDFont::CJKFont; main(); sub m
なんだそりゃって話ですが、例えば、Windowsで、perlプログラムを作って、ダブルクリックで実行すると。 die したときに、あっというまにプロンプトが消えちゃって、わけわかんねってなっちゃいますが。 (追記)charsbarさんによると、レジストリをいじることでWindowsでプロンプト開きっぱにもできるようです。副作用があるようですが。 http://d.hatena.ne.jp/charsbar/20090604/1244104249 そういうときは、例えば、このようにしていたわけです。 BEGIN { $SIG{__DIE__} = sub { print STDERR @_; <>; } } 毎回面倒くさいなぁ、と思い、こういうのはどうかなと。 package Script::Carp; use Carp (); use strict; use warnings; our $
私はよくPerlスクリプトのベンチマークを記事にするが,ベンチマークスクリプトを書くのもその結果を評価するのも実は非常に難しいことに気付いた。そこでここでは,ベンチマークについての覚書を記しておく。 まず,ベンチマークの結果はある程度恣意的に操作できる。ベンチマークの結果を操作する方法はいくつかあるのだが,まず測定したいコードがベンチマークコード全体に占める割合を操作するのが簡単であろう。 たとえば,先日の変数エイリアスについてのベンチマークは,エイリアスは代入よりも25%ほど高速であるという結果となった。 そのコードについては,エイリアス/代入の回数を増やすことで,差を大きくすることができる。 #!perl -w use strict; use Benchmark qw(:all); use Scalar::Alias; print "For string\n"; my @strings
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く