タグ

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

  • vim で Perl を書くときのための tips - Articles Advent Calendar 2012 Casual

    @tokuhirom です。Perlを書き始めて8年ほど経ち、Perlで何か作る際の効率化の手法がそれなりに確立してきたので、それを思いつくままに紹介しようと思います。主に多言語から来てPerlにほどんど慣れてない方などを想定しています。 僕の秘伝のタレ的な .vimrc の中から perl に関係ある部分だけをぬきだしてお教えしましょう。すべて設定すればだいぶ快適になりそうです。とかかいてると教えるのもったいない気分になってきた。 ぼくの環境 僕は vim の環境として以下のようなものを指定しています。mattn さんからは DIS られがちです。 neosnippet unite.vim pathogen vim-perl プロジェクトの成果物をつかう https://github.com/vim-perl/vim-perl なんか最近、perl-vim から vim-perl にかわ

    vim で Perl を書くときのための tips - Articles Advent Calendar 2012 Casual
  • App::YG - ログをう゛ぁーてぃかるぱみゅぱみゅしちゃう!! - Articles Advent Calendar 2012 Hacker

    やあハッキングモンスターのみんな、元気かーい? ぼくは普通です。 きょうはみんなでログをう゛ぁーてぃかるぱみゅぱみゅしちゃうぞ!あ、こんにちは bayashi です。 さて、ログは見てるかい?cat してるかい? tail してるかい? GB単位のログを vim で開いてフリーズさせてやいないかい?ログは吐いたら終わりじゃいけないぜ!ちゃんとうぉっちしないと鬼がでちゃうぞ!! とはいえ、そんなログも、たいていは1行につらつらと書かれてて見るのがつらいね!!例えばこんなやつだ。 $ tail log 127.0.0.1 - bayashi [10/Oct/2000:13:55:36 -0700] "GET /apache_pb.gif HTTP/1.0" 200 2326 "http://www.example.com/start.html" "Mozilla/4.0 (compatible

    App::YG - ログをう゛ぁーてぃかるぱみゅぱみゅしちゃう!! - Articles Advent Calendar 2012 Hacker
    toritori0318
    toritori0318 2012/12/07
    便利!
  • テストのためにデーモンを自動的に起動するやりかた2011年版 - Articles Advent Calendar 2011 Test

    はじまりはパクり 最近あんまりコード書いてません、lestrratです。 テストを走らせる時にいろんな他のデーモンを立ち上げたり、そのテストのためだけの設定を先にしないといけなかったりとか色々ありますよね。結構長い間Makefile.PLはModule::Installで書いていたせいもあって、ちょっと前にxaicronさんが書いてたModule::Install::TestTargetでごにょごにょやってたのですが、ちょっと前にYappo/tokuhiromさんがproveで書いてたセットアップがまるっと自分の欲しい用途にも使える事に気づいたのでいろんなアプリケーションのテストをそのように変えてみました。 流れ proveでテストをすると、proveのプラグインを呼び出す設定ができるのですが、これをプラグインというよりテスト前に実行されるフックとして利用する事によって任意の設定用のコード

    テストのためにデーモンを自動的に起動するやりかた2011年版 - Articles Advent Calendar 2011 Test
  • Config::ENV - 環境変数で config を切替えるためのモジュール - Articles Advent Calendar 2011 Hacker

    前置き こんにちは。cho45 です。みなさん、意識は高まっていますか? 僕は上々です。今回は拙作の Config::ENV というモジュールを紹介させて頂きます。 アプリケーション開発をするとき、開発用・テスト用・番用で、設定を変えたいわけですよね。だいたいのウェブアプリケーションフレームワークでは、環境変数にある値を設定することで、複数の設定を一括で切替えられるような機能を提供していると思います。Config::ENV は、その機能を1つのモジュールとしたものです。 Config モジュールを書く とりあえず簡単な使い方を紹介します。まずは以下のように設定を保持するモジュール (MyApp::Config) を作ります。 package MyApp::Config; use Config::ENV 'PLACK_ENV'; # (1) common +{ # (2) api_key

    Config::ENV - 環境変数で config を切替えるためのモジュール - Articles Advent Calendar 2011 Hacker
  • perl でテストを始めよう!! - Articles Advent Calendar 2011 Test

    はじめに こんにちはこんにちは!最近会社のモニターが二枚になって持て余している xaicron です。 さて、Test Track と称して始まったトラック。全部よめばあなたもテストを書かずには生きていけない、そんな身体に大変身していること間違いなしです。 とりあえず今日は初日なので、perl でテストを書くときに必ずと言っていいほど利用する Test::More を使ったテストの書き方を書こうと思ます。 また、「テスト」とざっくりといってもいろいろなものがありますが、その辺の細かい話はきっと ikasam_a さんが書いてくれるのでスルーします。 Test::More チートシート まず、More というだけあって、結構機能がいっぱいあるので、チートシートを先にあげておきます。perldoc Test::More のほぼコピペですが、きっと皆さんは perldoc Test::More

    perl でテストを始めよう!! - Articles Advent Calendar 2011 Test
  • DBIx::QueryLog で DBI で実行された SQL を丸見えにする! - Articles Advent Calendar 2011 Dbix

    こんにちは、最近 PSP1000 の電池が一瞬で切れてしまってまともにゲームができない xaicron です。 さて、みなさんは DBI から吐かれた SQL をみたいなーと思うこともあるでしょう。 そんな時は、$ENV{DBI_TRACE} = 2 とかしてみると、ドバーッといっぱいデバッグログが出てきて、 その中に実際に発行された SQL がちょろっと出てたりするのでこいつを頑張ってパースすればいい感じですね! っていうのはだいぶ面倒だったりしますね。あたりまえですね。 そこで、use するだけでとりあえず全部の発行された SQL を STDERR にはいてくれるモジュールを書きました。 その名も DBIx::QueryLog です。そのままですね。 つかいかた 使い方は至極簡単で、どっかで適当に use するだけです。ほかには何もいりません。 そうすると、以下のような感じで STDE

    DBIx::QueryLog で DBI で実行された SQL を丸見えにする! - Articles Advent Calendar 2011 Dbix
  • 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
  • 業務終了後、git logとDist::Makerでさっさと帰る話。 - Articles Advent Calendar 2011 Casual

    こにゃにゃちはー。@hisaichi5518です。 今、バイトしてる会社では日報を送らなければなりません。 日の業務とか日の雑感とかを送るアイツです。こういうのって結構めんどいですね。 というわけで、日報を軽く自動化しましょう! なんかしらコードを書いたらコミットすると思います。コミットのログ=行った業務のログですね!!!!!!! つまりgit logで全部解決するわけです。会社でsvnを使ってる場合でも、git-svn使えば解決です。 $ git log --since=yesterday --author=hisaichi5518 --pretty=format:"- %s" こんなの毎回打つのだるいので、.bashrcにaliasを書きます。 alias nippou_='git log --since=yesterday --author=hisada --pretty=for

    業務終了後、git logとDist::Makerでさっさと帰る話。 - Articles Advent Calendar 2011 Casual
  • それ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
  • 使っちゃいけない標準モジュール - Articles Advent Calendar 2010 Casual

    gfxと申します。 Perlは後方互換性を重視しているので、標準モジュールはめったに取り除かれる事がありません。しかしそれでも、いくつかのモジュールが将来的に取り除かれる見込みです。そのようなモジュールは使用しないほうがいいでしょう。また、取り除かれはしないものの、様々な理由から使用すべきでないモジュールもいくつかあります。今日は、そういった使うべきでないモジュールを紹介します。なお、このエントリの対象バージョンは5.8から5.14を想定しています。 さて、まずは取り除かれるモジュールです。現在のところ、以下の三つのモジュールが5.14でコアから削除される予定です。 Class::ISA Pod::Plainer Switch Class::ISAはクラス階層を直列化するモジュールですが、5.10以降はmroに取って代わられました。5.10未満のバージョン用にはMRO::Compatが用意

    使っちゃいけない標準モジュール - Articles Advent Calendar 2010 Casual
  • Path::Classで簡単ファイル操作 - Articles Advent Calendar 2010 Casual

    こんにちは!モダンPerlの裏側しか知らないkoba04です。 今日は、少し前まで「続・初めてのPerl」を読んでいた自分が、遅ればせながらその便利さに感動して使うようになったPath::Classについてを。(ってもう使ってますよね。。) 多分Casual Trackの中でも最も初心者向けな内容になっているんじゃないかと思います。。 何が便利かというと、「File::Spec」や「File::Path」、「IO::Dir」、「IO::File」、「File::stat」などのモジュールにある関数を「Path::Class」をインターフェイスとして使うことが出来ます。 とりあえず「use Path::Class」でいいので便利ですね! オブジェクトの作成 まずはファイルオブジェクトの作成。(file) use Path::Class; my $file = file('path', 'to

    Path::Classで簡単ファイル操作 - Articles Advent Calendar 2010 Casual
  • 書き捨てスクリプトを書くときに便利なモジュールとPragmatic Module - Articles Advent Calendar 2010 Casual

    先月末から原稿を書こう書こうと延ばし延ばしきて当日に書いている私ことpunytanです。 みなさん、書き捨てスクリプト書いてますか?書いてますよね。 書き捨てのつもりがいつの間にかオプションを取るようになっていて、使うときに「オプションなんだっけ…?」なんてことよくありますよね。ありますね。 そんなときは Getopt::Long と Pod::Usage を組み合わせて使うと POD で Usage を書く事ができます。便利! use Getopt::Long; use Pod::Usage; my $man = 0; my $help = 0; GetOptions('help|?' => \$help, man => \$man) or pod2usage(2); pod2usage(1) if $help; pod2usage(-exitstatus => 0, -verbose

    書き捨てスクリプトを書くときに便利なモジュールとPragmatic Module - Articles Advent Calendar 2010 Casual
  • Email::MIME::MobileJPで文字コードまわりに気をつかわないでメールの送受信をおこなう - Articles Advent Calendar 2010 Hacker

    メール関係のモジュールをとりまとめて、カジュアルにつかえるようにするためのモジュールをかいてみました。 メールの受信(Parsing) メールのパーズは、以下のように、メールの文字列をくわせてやればいいです。 use Email::MIME::MobileJP::Parser; my $src_text = do { local $/; <> }; my $mail = Email::MIME::MobileJP::Parser->new($src_text); メールオブジェクトから Subject をえるには以下のようにしましょう。 ここでとれるものは MIME ヘッダにはいっている情報をもとに、UTF-8 に decode された文字列です。 可能ならば絵文字も decode します。これには [Encode::JP::Mobile](http://search.cpan.org/p

    Email::MIME::MobileJPで文字コードまわりに気をつかわないでメールの送受信をおこなう - Articles Advent Calendar 2010 Hacker
  • SQL::Makerで動的に SQLを生成する - Articles Advent Calendar 2010 Hacker

    どうもこんにちは。hacker track がやる気なさすぎるのでもう一回かくよ!というわけで tokuhirom ですこんにちは。こんにちは。 さて、最近つくった SQL::Maker というモジュールについて紹介します。SQL::Maker は、要は SQL::Abstract みたいなやつです。じゃあなんで SQL::Abstract じゃなくて SQL::Maker なの?ってことになるわけですが、 SQL::Abstract は実績があるし、非常に便利なんですが、いかんせんコードがまじよみづらいっていうかこれよむの無理じゃね!!ってことをおもうので、あたらしくつくったという次第。 また、SQL::Maker は method chain で SELECT 文を構築する機能もついてます。あらべんり。こんなかんじ↓↓ my $sql = SQL::Maker::Select−>new

    SQL::Makerで動的に SQLを生成する - Articles Advent Calendar 2010 Hacker
  • Config::PitとWeb::ScraperとPlaggerで24時間365日のゲーム監視体制

    序文 趣味のネットウォッチのために仕方が無く超便利なPerlを覚えようという感じの otsune です。そんなわけでコーディングの深い話はよくわからんので、今回はPerlとCPANを使ってネットウォッチを支援する手法について書きます。 ウォッチしたいWebページを機械的に監視できれば、あとはPlaggerなどの便利ツールを使って「メールを出す」「im.kayac.comでメッセンジャーにアラートを出す」「ピザを注文する」など好きな処理をすることが出来ます。 RSSフィードやAPIなどがあるWebサイトであれば特に苦労はしないのですが、今回取り上げるOgame.jpはウェブブラウザーゲームなので、フィードなど便利な機能はまったく存在しません。 そこでウォッチしたいWebページに対してWeb::Scraperを使ってYAMLを出力する短いスクリプトを書いてしまいます。 メールを出すなどのこまご

    toritori0318
    toritori0318 2010/12/19
    following-siblingの使い方
  • それ多分Perlでできるよ - Articles Advent Calendar 2010 Win32

    どもです、こっそりWin32Trackに参加したら速攻でcharsbarさんに「次お前な」といわれてしまいました、turuginaです。一応kansai.pm所属らしいです。 さて、今回はperl/binディレクトリの中から 「*nix環境には普通にあるけど、Windows環境にはない」というコマンドの代替スクリプトのようなものをいくつか紹介してみたいと思います。 ptar Archive::Tar付属スクリプト。 tarコマンドっぽいスクリプト。 tarコマンドと違って オプション指定にハイフンが必須だったり圧縮オプションはz(zlib圧縮)しか対応してなかったり(伸長はbzip2でも大丈夫)と微妙に使いづらい気も... とりあえず、perlのソースコード tarball はこのptarで問題なく展開できるはずです。 おまけで(?) tarファイルの中身とディレクトリとのdiffを取る

    それ多分Perlでできるよ - Articles Advent Calendar 2010 Win32
  • How to run MovableType with Plack - Articles Advent Calendar 2010 English

    Hello, this is typester. I'm now creating kamakura.pm website with MTOS, but I'm using nginx as web server that doesn't support CGI. But no worry about that. Now we have Plack! This article shows you how to setup MovableType with Plack. Let's get started. Requirements Plack 0.9952+ Starlet or Starman MovableType or MTOS (MTOS-5.04, I confirmed) At first, make sure your Plack version is higher than

    How to run MovableType with Plack - Articles Advent Calendar 2010 English
  • Data::Validatorでバリデーションする - Articles Advent Calendar 2010 Casual

    はじめまして!@hisaichi5518です。就活生です。誰か雇ってください。 Text::Xatenaについて書こうと思っていたんですが、もうText::Xatenaの記事が他のトラックにあるので、今日はgfxさんによってリリースされたData::Validatorを紹介しようと思います。 Data::Validator とは 実行時型チェック / パラメーターチェックが出来る便利なモジュールです。 現在、Params::Validateがデファクトスタンダードっぽいんですが、速度が遅かったりするので正直微妙です。 ベンチマーク p5-Data-Validator/benchmark/simple.pl Params::Validate/0.95 Smart::Args/0.06 Data::Validator/0.06 without type constraints Rate P::

    Data::Validatorでバリデーションする - Articles Advent Calendar 2010 Casual
  • Google Docsの表計算書類をNet::Google::Spreadsheetsを使ってブラウザ抜きで読み書きする - Articles Advent Calendar 2010 Casual

    こんばんは。tumblr がサーバーダウンするとネット呼吸が出来ないotsune (Facebook - otsune) です。 jp.blogs.com|おもしろブログ記事のまとめサイトというサイトで、ネットウォッチ中に見かけた興味深いWebページのURLを美人編集長上野さんにたれ込むという趣味的行為をしているんですが。困ったことにURL集計にGoogle Docsの表計算の複数人編集機能を使ってて、1-clickどころかブラウザひらいてマウスでカチコチと気の長くなるほどメンドクサイ手順を踏まないとURLを貼れないという、CUIGUIのあいだに横たわる深くて長い天の川があったりしてシンドイわけです。世間でもよくある話ですね。 そんなわけでめんどくさいことはPerlのようなものにやらせればいいのよってことで、今日は飲み会のヒーローlopnorさんが書いたNet::Google::Spre

    Google Docsの表計算書類をNet::Google::Spreadsheetsを使ってブラウザ抜きで読み書きする - Articles Advent Calendar 2010 Casual
  • HTML5 な今だからこその位置情報ハンドリング♡ - Geo::Coordinates::Converter - Articles Advent Calendar 2010 Hacker

    Shibuya.PM #15 の会場からこんにちわyappoです。 なにを紹介をしようと考えた時に、以外と使いどころがあるGeo::Coordinates::Converterについて書こうとおもいました。 これが何が良いかというと、緯度経度の測地系( wgs84 とか tokyo )やら、表示フォーマット(degree, dms, geohash)をプラガブルに追加して使えるって事なんです。iAreaとかにも対応しております。 まー作った当時から似たような物は沢山あったのですが、どれも特定の測地系に特化していたり古い時代の Perl みたいなモジュールだったりで使いにくかったりしたので作ったのであります。 とりあえずつかおう! まずはインストールです。 $ cpanm Geo::Coordinates::Converter で入ります簡単ですね。 使い方はとっても簡単で use comm

    HTML5 な今だからこその位置情報ハンドリング♡ - Geo::Coordinates::Converter - Articles Advent Calendar 2010 Hacker