タグ

ブックマーク / perl-users.jp (17)

  • それCallbacksで - DBIxを作りだす前に - Articles Advent Calendar 2011 Dbix

    どうもkazeburoです。DBIx Trackなのに、DBIxを作らない話。 myfinderさんがDBIxを作る第一歩としてDBIのサブクラスの作り方を紹介しましたが、実際にDBIxを作り出す前に、その機能がDBIの標準機能でできないか調べるのがオススメです。 Callbacksの基 CallbacksはDBIに標準で用意されているHook機能です。 my $dbh = DBI->connect('dbi:SQLite:dbname=test.db','','', { RaiseError => 1, PrintError => 0, Callbacks => { connected => sub { ... } } }); 接続時のAttributesにCallbacksを追加します。上では接続が完了(connected)したらcoderefが呼び出されます。 接続時にテーブルを作

    それCallbacksで - DBIxを作りだす前に - Articles Advent Calendar 2011 Dbix
    markup
    markup 2011/12/06
  • DBIx::Handlerで安心DB生活 - Articles Advent Calendar 2011 Dbix

    こんにちは!nekokakです! 今年はボクが作ってるDBIx::Handlerというものを紹介してみる。 DBIx::HandlerはDBIのラッパーでありDBのコネクション周りの管理に重点を置いたモジュールである。 ORMを使わずにDB周りの処理を行いたい場合はこのDBIx::Handlerを使うことをおすすめする。 自分でDBIのインスタンスを生成し利用する場合どこまで正しくコネクション管理をあなたはできますか? そもそも親プロセスで接続したdbのインスタンスを子プロセス側でも利用することの問題を正確に把握していますか? そこまで正しく細かく理解し自分で実装できたとしてもだ、新しいプロジェクトを作るたびにそのコードをコピペするのか? そこでDBIx::Handlerの出番だ。 DBIx::Handlerはそのあたりの処理をすべて面倒みてくれる。 もうあなたは いつDBとの接続が着られ

    DBIx::Handlerで安心DB生活 - Articles Advent Calendar 2011 Dbix
    markup
    markup 2011/12/01
  • PerlIO::via で遊ぶ - JPerl advent calendar 2010 acme Track

    こんにちは、こんなにトミールを名乗っているのにいつまでたってもトミールの検索結果が抗ウイルス製剤のトミールです。今年も1位奪還は失敗しました。 さて、今日は Acme じゃないんだけど限りなく Acme ぽい PerlIO::via をご紹介しましょう。 役に立つ PerlIO 基礎知識(Acme に入る前に) perl の IO レイヤーは、実はいろいろできて便利です。一番便利なのは、:encoding() でしょう。 こういう、 use autodie; use Encode; open(my $fh, '<', 'file.txt'); while (my $line = Encode::decode('cp932', <$fh>)) { print Encode::encode('utf-8', $line); } 入力を cp932 エンコーディングで decode()、出力は

    PerlIO::via で遊ぶ - JPerl advent calendar 2010 acme Track
    markup
    markup 2010/12/24
  • PODのコード部分をかっこよくHTMLでみたいよねー - Articles Advent Calendar 2010 Casual

    全裸で有名なPerlハッカーsugyanの、上司に「ゆーすけくん、最近全然仕事してないね。ウケる!」って言われてるyusukebeです。今日はPerlソースコード内のPODドキュメントをHTMLで出力して、奇麗にみたいなーと思っていた時に考えたモジュールの組み合わせについて紹介します。 やりたいこと Perlのソースコード内のPODをHTML化 さらにPOD内で書かれてるPerlコード(というかインデントされたブロック)をハイライトシンタックスしたい JS使ったら負け PODをHTML化 PODを整形化してHTML化するモジュールはたくさんあります。今回僕が使うのは、Pod::Simple::XHTMLというモジュールです。XHTMLを出力してくれるので後々POD内のPerlコードの部分を指定しやすいです。 use Pod::Simple::XHTML; my $source = '...

    PODのコード部分をかっこよくHTMLでみたいよねー - Articles Advent Calendar 2010 Casual
    markup
    markup 2010/12/02
  • Plack::Server::Standalone系を使ってウェブアプリケーション開発と運用が楽になる話 - JPerl Advent Calendar 2009

    Plack::Server::Standalone 系を使ってウェブアプリケーション開発と運用が楽になる話 - JPerl Advent Calendar 2009 Perl に関するちょっとした Tips をのっけてみるよ。ちゃんと続くかな? 既存の環境に対する不満 Perl のウェブアプリケーションを構築するにあたっては、リバースプロキシと mod_perl を組み合わせるか、あるいは FastCGI (ExternalServer) を利用するのが一般的だと思います。しかし、どちらをとっても、環境を構築して設定するのが難しいというのが個人的な不満でした (mod_redirect を設定したり mod_fastcgi にパッチをあててインストールしたり startup.pl を書いたり...)。自分が Plack の開発 (主に Server::Standalone と Server

    markup
    markup 2009/12/24
  • Perlではじめるテキストマイニング - JPerl Advent Calendar 2009

    Perlではじめるテキストマイニング - JPerl Advent Calendar 2009 Perl に関するちょっとした Tips をのっけてみるよ。ちゃんと続くかな? ■前置き みなさんこんにちは。ダウンロードたけし(寅年)です。来年は年男なので今からお正月が待ち遠しい35歳2児の父です。 ここ数年、web広告業界ではコンテキスト解析とかユーザの行動分析とか、いわゆるデータマイニング/テキストマイニング系の話題が花盛りです。 自分もそんな業界に属しているんですが、ふと気がつくと日語のテキストマイニング系モジュールを量産してしまっているので、ここらでいくつか紹介してみたいと思います。 今回はインターネットからブログなどのコンテンツを取得して、それを意味解析してクラスタリングする、といったようなことを題材にモジュールの紹介をしてみます。 ■HTML::Featureで文抽出 まずは

    markup
    markup 2009/12/11
  • Plack::Requestとか使って小さなWebアプリを作ろう! - JPerl Advent Calendar 2009

    ヒゲをはやして、髪をモヒカン気味に切って、ベストを着ていたら「dankogaiさんですか!」と呼ばれまくって失礼ですがショックを受けてしまい、とりあえずヒゲを剃ってみたyusukebeです。気合い入れて書きます。 はじめに さて、今回はPlack::RequestやTemplate-Toolkit、XML::Feedといったモジュールを使って、小さな、だけどもなかなか使えるWebアプリを作る過程を紹介します。これを通して、今話題であるPlackについてやWebアプリの仕組みについて多少でもわかっていただければこれ幸いでございます。 実はこのネタ昨日の夜考えて作ったものであります。というのも「YouTubeの動画を垂れ流しで好きなように、みてーな」とふと思ったからです。例えばYouTube内で「Perfume」と検索をすると個別の動画以外に「再生リスト」または英語では「Playlist」とい

    markup
    markup 2009/12/08
  • かんたんコンテンツジェネレータ Nim に入門してみた - JPerl Advent Calendar 2009

    今年の jperl advent calendar はnimという typester さんが開発しているツールを使って生成しているのですが、これが便利らしいので入門してみる事にしました。 インストール github にリポジトリがあるので、 git が使える場合は以下のようにして取ってきます。以下、~/tmp を起点に作業する事にしますので、ご自分の環境に合わせて読み替えてください。 % mkdir ~/tmp % cd ~/tmp % git clone git://github.com/typester/nim.git git が使えない場合は http://github.com/typester/nim にアクセスして「download」ボタンを押せば最新版がダウンロードできます。 とってきた後は、 nim のディレクトリに入って % cd ~/tmp/nim % perl Make

    markup
    markup 2009/12/03
  • JPerl Advent Calendar 2009

    JPerl Advent Calendar 2009 Perl に関するちょっとした Tips をのっけてみるよ。ちゃんと続くかな? 今年もやってきました、JPerl Advent Calendar。12月1日から25日まで、1日1個ずつ tips を紹介していきます。 今年は三だてです。はたして最後まで無事につづくのでしょうか。今年も無計画な上に面子がそろってないので、はらはらどきどきです >< Main Tracks Hacker Track

    markup
    markup 2009/12/02
  • バイナリファイルを解析する

    Perlといえばテキスト処理や正規表現が得意で、バイナリを扱うような話についてはあまり聞かない印象があります。Perlが持つ関数pack/unpack等でもバイナリ処理は可能ですが、今回はData::ParseBinaryを使ってバイナリファイルを気軽に解析してみましょう。 基 ファイルからストリームを作る 解析したいファイルをData::ParseBinaryで扱えるストリームに変換します。 use Data::ParseBinary; my $stream = CreateStreamReader(File => $file_handle); 解析したい構造を定義する Struct関数で解析したい構造を定義します。Struct以下には基データ型やコンテナ型、ビット/バイトパディング型、制御構文型等を使用できます。各型に指定したラベルが解析結果として得られるハッシュのキーとなります。

  • キャッシュしよう

    京都観光で散財しすぎて貯金がないmalaです。こんにちは。キャッシュの話を書きます。 色んなキャッシュがあります データベースから引く前にmemcachedから取得したり テンプレートエンジンのレンダリング結果をキャッシュしたり 各種ウェブサービスのリクエスト結果をキャッシュしたり その他諸々CPUったり時間のかかる処理をキャッシュしたり 簡単に思いつくのはこの程度ですが、スケーラブルなウェブサイトを構築するには常識的に考えてそんなのキャッシュしねーだろうというようなものをキャッシュする必要があります。 DateTimeをキャッシュしよう 同じ時刻に対するDateTimeオブジェクトをキャッシュします。 package MyDateTime; use strict; use base qw(DateTime); my %CACHE; sub now { my $class = shif

  • ヒアドキュメントの中でPerlの式を書く

    初代新幹線「0系」最後のラストランの日に、新幹線N700系のぞみでイーモバイルしながらこの記事を書いているid:TAKESAKOです。 Perlのヒアドキュメントを使うと複数行にわたる文字列を一気に代入したりするときに楽なので、使っている人も多いと思います。 my $foo = "bar"; my $tmp = time(); # ←関数の実行結果 print<<EOF; <div class="${foo}1"> <h1>TIME: $tmp</h1> </div> EOF しかし、ヒアドキュメントの途中でサブルーチンの実行結果も一緒に埋め込みたいときがでてくるときがあります。 @{[ Perlの式 ]} そのようなときは、@{[ リスト ]} というイディオムを使うと非常に便利です。 print<<EOF; <div class="${foo}1"> <h1>TIME: @{[ tim

    markup
    markup 2008/12/15
  • Win32::GuiTest で Windows の GUI アプリをハックしよう

    的な書き方 use strict; use warnings; use utf8; # ↑ Perl ハッカーに DIS られなくなるおまじない # Win32::GuiTest を使うおまじない use Win32::GuiTest qw(:ALL); # 日語を使えるようにするおまじない UnicodeSemantics(1); # ここで Win32::GuiTest を使う マウスを動かす use strict; use warnings; use utf8; use Win32::GuiTest qw(:ALL); # 小数点もいけちゃう sleep 関数 use Time::HiRes qw(sleep); UnicodeSemantics(1); for (my $i = 0; $i < 500; $i++) { # 10 ms 待つ sleep(0.01); # マウ

    markup
    markup 2008/12/12
  • JPerl Advent Calendar 2008

    JPerl Advent Calendar 2008 Perl に関するちょっとした Tips をのっけてみるよ。ちゃんと続くかな?

    markup
    markup 2008/12/02
  • Mojolicious 入門 - モダンなPerl入門

    LL温泉2008用の資料です。 最近でたばかりのフレームワークである Mojolicious をつかってみましょう。 インストール すごいかんたんです。 # Mojo をダウンロード % wget http://mojolicious.org/Mojo-latest.tar.gz # 解凍 % tar xzvf Mojo-latest.tar.gz % cd Mojo # Makefile 生成 % perl Makefile.PL # make する % make # テストスィーツをうごかしてみる % make test # インストール % sudo make install # うまくいったか確認 % mojolicious daemon Server available at http://127.0.0.1:3000. アクセスしたら、こんな画面がでます http://gyaz

    markup
    markup 2008/11/17
  • http://perl-users.jp/acotie/

    markup
    markup 2008/09/03
  • Perl-users.jp - 日本のPerlユーザのためのハブサイト

    Perl Mongers Perl Mongers とは、日各地に存在する、Perl ユーザーのコミュニティのことです。各種イベントが行われていますので、是非参加してみましょう。 Shibuya.pm Fukuoka.pm Kansai.pm (@kansaipm) Yokohama.pm (@yokohamapm) Hokkaido.pm (@hokkaidopm) Nagoya.pm (@nagoyapm) Kushiro.pm (@kushiropm) Kyoto.pm (@kyotopm) Kamakura.pm Niigata.pm (@niigatapm) Sendai.pm (@sendaipm) Tokyo.pm Hachioji.pm (@hachiojipm) Chiba.pm (@chibapm) Yomitan.pm (@yomitanpm) Machida.pm

  • 1