タグ

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

  • Text::Xatena - はてな記法のような記法フォーマットパーサー - Articles Advent Calendar 2010 Meta_adcal

    こんにちは、cho45です。 今回この advent calendar に拙作 Text-Xatena が使われたということで、ちょいと Xatena フォーマットの話でも書こうと思います。 Text::Xatena の位置づけ みなさんご存知かもしれませんが、既に CPAN には Text::Hatena というモジュールがあります。ではなぜ今また、似たようなフォーマットの別のモジュールを書く必要があったのでしょうか。これには以下のような理由があります。 Text::Hatena は実のところあまり Hatena::Diary と互換がない Text::Hatena は非常に遅い Text::Hatenaはてなに依存した記法がいくつか存在する (id 記法など) これらのことを解決するために、Text::Xatena は作られました。 Text::Xatena はブロックレベルの互換

    Text::Xatena - はてな記法のような記法フォーマットパーサー - Articles Advent Calendar 2010 Meta_adcal
  • 最強のケンオールを求めて - Parse::JapanesePostalCode - Articles Advent Calendar 2012 Hacker

    こんばんは、最近自己紹介する機会があったので「空前のKEN_ALL.CSVブームを作った事で有名です」って言ったら結構通じた yappo です。 と言う事で今日はわけあってどのように KEN_ALL.CSV を処理しているかについて書こうと思います。 使い方に関しては https://metacpan.org/module/Parse::JapanesePostalCode https://github.com/yappo/p5-Parse-JapanesePostalCode こちらをご覧頂ければいいです。マジ簡単だから誰でも使えます。 前提知識 http://www.post.japanpost.jp/zipcode/dl/readme.html こちらの 郵便番号データファイルの形式等 を良く読むとこのエントリの理解が深まります。 Parse::JapanesePostalCode

    最強のケンオールを求めて - Parse::JapanesePostalCode - Articles Advent Calendar 2012 Hacker
    tyru
    tyru 2012/12/14
  • 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
    tyru
    tyru 2012/12/08
    見やすい
  • HTTP通信を含むモジュールのテスト - Articles Advent Calendar 2011 Test

    こんにちは!こんばんは!寒いのがめっぽう苦手、bayashi です! きょうは、HTTP通信を伴うモジュールのテストについて書いてみます! サンプルモジュール WWW::Foo8 具体的に説明するために、WWW::Foo8 というモジュールを書きました! package WWW::Foo8; use strict; use warnings; our $VERSION = '0.01'; use Class::Accessor::Lite ( rw => [qw/agent error/], ); sub new { my ($class, %args) = @_; $args{agent} = _default_agent() unless $args{agent}; bless \%args, $class; } sub get { my ($self, $uri) = @_; my

    HTTP通信を含むモジュールのテスト - Articles Advent Calendar 2011 Test
  • ぼくのかんがえた最強のテスト分類 - Articles Advent Calendar 2011 Test

    はじめに こんにちは!最近転職して新宿までロマンスカーにお世話になりっぱなしの ikasam_a です。 Test Track 3日目です!初日に xaicron さんから「テストの細かい話を書いて!」と言われたので、今日はちょっと趣向を変えて、テストの分類についてつらつらと書いてみたいと思います。 あまり、というかまったく Perl の話は出てこないです!さーせん! テストを分類すると捗るぞ 例えばチームでテストの話をするような時に、それぞれが考える「テスト」のイメージが違って、話が噛み合わないことがあったりしますよね。僕はよくありました。 僕は「テスト=単体テスト」の話をしているつもりが、相手は「テスト=機能テスト」だと思って話を進めていると、あれ?という場面があったりします。こういうときは、例えば設計におけるデザインパターンのように、テストをより具体的にした共通認識があると話が捗りま

    ぼくのかんがえた最強のテスト分類 - Articles Advent Calendar 2011 Test
    tyru
    tyru 2011/12/07
  • /articles/advent-calendar/2010

  • Mouseに関する4つの誤解 - Articles Advent Calendar 2010 Hacker

    メリクリ!Hacker Trackもいよいよ最終日となりました! 今回は以下のようなMouseに関するよくある誤解を晴らそうと思います*1。 MouseはMooseとの互換性に難がある Mouseは依存モジュールが多い Mouseはロードが遅い Mouseは実行が遅い MouseはMooseとの互換性に難がある これは誤解です。確かにMouseはMooseと互換性のない部分もありますが、それはほとんどがメタオブジェクトプロトコルレベルの話です。メタオブジェクトプロトコルは普通に使っている限り意識する必要のないものなので、ほとんどのケースでは問題になりません。普通に使う限りは非互換な点は特にないでしょう。 Mouseは依存モジュールが多い これは誤解です。Mooseは大量の依存モジュールがありますが、Mouseが依存しているのは標準モジュールのみです。また、CコンパイラがあればXSコードをビ

    Mouseに関する4つの誤解 - Articles Advent Calendar 2010 Hacker
  • 使っちゃいけない標準モジュール - 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
  • 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
  • proveをうまく使ってテスト実行を効率化しよう - Articles Advent Calendar 2010 Casual

    こん(にちは|ばんは).最近は卒論でC/アセンブラ,アルバイトでPerl/Objective-Cと高低レイヤーを行ったり来たりなyaottiです. このエントリでは,テストを実行する時に便利なproveコマンド(App::Prove)の便利な機能+αについて紹介します. 基的な使い方 prove t/foo.t のようにして使います.perlと同じように-lや-Idir,-v, -MModule::Nameなども使えます. prove -l -Ilib -v t/foo.t 他にも,-Pオプションでプラグインを利用することもできます. 例えばmotemenさんの書いたApp::Prove::Plugin::ProgressBar::Eachは大量のテストを実行するときに便利です. cpanm https://github.com/motemen/App-Prove-Plugin-Prog

    proveをうまく使ってテスト実行を効率化しよう - 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
    tyru
    tyru 2010/12/15
    そういえばなぜかなんとなく使ってない
  • モジュールを公開してみよう - Articles Advent Calendar 2010 Perl6

    5日目の「[/articles/advent-calendar/2010/perl6/5:title=モジュールを書いてみよう]」は読みましたか?モジュール書いてみましたか?もう書いた?すばらしい! そうすると次は……公開してみたくなりますよね? まだ書いていない人も……何か書きたい!公開したい!と思いませんか? 今日はそんな人のために、 Perl 6 モジュールを公開して に登録するまでのステップを説明します。 0. モジュールを書こう 何はなくともモジュールを書きましょう。実用的なものを書くもよし、 Perl 5 や他の言語のモジュールを移植するのも勉強になりますし、おふざけモジュールだってかまいません。 適当なディレクトリ(以下 $project とします)を作って、モジュールを $project/lib 以下に置きます。 依存する Perl 6 のモジュールがあるなら、 $proj

    モジュールを公開してみよう - Articles Advent Calendar 2010 Perl6
  • Windows でも Growl を使おう - Articles Advent Calendar 2010 Win32

    こんにちわ。Growl 大好きっ子 mattn です。 重たいバッチジョブを走らせている間、別の作業をする。ジョブが終わったらデスクトップに Growl を表示させて処理の完了を知る。 その合間にもRSSから配信されたニュースや自分への Mention を Growl 表示し、あっという間に情報を操作する。 誰もが憧れる Hackish な作業風景ですね。Mac ユーザであればその他の活用方法を知ってる人も数多くいるでしょう。 Windows だから同じ様には行かない... そんな風に思っていた頃が僕にもありました。 Growl For Windows http://www.growlforwindows.com/gfw/ そんな僕らはある日 Growl を得た。リッチな UI そして変更出来るデザイン。アイコンも表示出来る。さらにはプロトコルが公開されている。 http://www.gr

    Windows でも Growl を使おう - Articles Advent Calendar 2010 Win32
  • CPANモジュールをWindowsのみで作成する方法 - Articles Advent Calendar 2010 Win32

    こんにちは今年CPAN Authorの端くれになったSongmuです。私みたいなヤツがCPANにモジュールを上げてしまってDisられないかビクビクしております。 CPANモジュールをWindows上で作っていたら色々無駄に苦労してしまったので、その辺の話を、Windows上でPerl開発する上でのTipsも含めて書いてみたいと思います。 Cygwinは甘ぇ VMは邪道 コマンドプロンプトとGUIで頑張るのが真のWin32Perl使い (ごめんなさいごめんなさい) では行ってみたいと思います。 改行コード編 ソースコードの改行コードは基的にはLFに揃えたいところです。ただ、Windowsには様々なところでCRLFがついてまわりますが、 注意。いきなりバッドノウハウです。 ActivePerlでは、標準の改行コードがCRLFになっています。また、読み込んだファイルの改行コードがCRLFでもL

    CPANモジュールをWindowsのみで作成する方法 - Articles Advent Calendar 2010 Win32
  • Vim と Perl で音楽プレーヤを作ろう - Articles Advent Calendar 2010 Casual

    こんにちわ。Perl はあまり得意ではありませんが Vim はある程度使いこなせる、Zimbu兄さんこと mattn です。口癖は「カッコつけんなよ」です。 さて、最近の Vim 界は Unite というプラグインが流行り出しています。 Unite がどんな物かについての説明文は、手前味噌ですが私のサイトをご覧頂けるとなんとなく分かるかと思います。「unite.vim」でググると幾らかヒットするかと思います。来は何かしらを選択させるUIライブラリの一種となります。 さて、今日はこの unite.vimPerl を使って音楽プレーヤを作ります。 音楽プレーヤと言っても音楽ファイルのフォーマットやらなんやらを Perl でやるという訳ではありません。 メディアプレーヤの「rhythmbox」を使います。他のメディアプレーヤでも良かったのですが DBusというインタフェースにより外部から

    Vim と Perl で音楽プレーヤを作ろう - Articles Advent Calendar 2010 Casual
  • Acme::Pokemon - Articles Advent Calendar 2010 Acme

    こんにちはトミールです。 とつぜんですがわたくしポケモンが大好きです(°∀°) 年齢的にポケモン世代をややずれてるためかポケモン友達まわりに数えるほどしかいないのですが、リアルタイムでやったんじゃなく、まえ小学生に勉強教える仕事してた時期に逆に教え込まれファンになったっていうパターンです。 大人がやるとポケモン、ほかのRPGと比べてあれ?これでいいの?みたいな簡単さとかご都合主義的なのがあってウケます。ポケモンセンターでは無償で全回復できたり。道路の名前が1番から始まる通し番号だったり。(まあおかげで今何番道路にいるのか聞けばゲームの進捗がわかるという。 それでもおもしろいのは、クリアの方法が千差万別ってところですね。好きなポケモンみつけてパーティを組むのですが、最大6匹もてる手持ちポケモン、数百匹いるポケモンからどの組み合わせで選んでもいい。しかも同じポケモンでも育て方によって変わってく

    Acme::Pokemon - Articles Advent Calendar 2010 Acme
    tyru
    tyru 2010/12/03
    「上のサンプルでもわかるとおり、ポケモンって例えば同じピカチュウでも図鑑によって番号が違ったりする」
  • /articles/advent-calendar/2010/meta_adcal

    tyru
    tyru 2010/12/02
    これは面白そうなAdvent Calendar。
  • BackPANで失せ物を探す - JPerl Advent Calendar 2009

    BackPANで失せ物を探す - JPerl Advent Calendar 2009 Perl に関するちょっとした Tips をのっけてみるよ。ちゃんと続くかな? 今年も残るところ10日をきりました。皆様如何お過ごしでしょうか。今日はAcme話を自重するつもりのmakamaka_at_donzokoでございます。 さて、年の瀬ともなりますと大掃除なんかになりまして、無くしたと思っていたものが見つかったとか、あると思っていたものが見当たらない、なんてことがよくあります。見つかる方は良いのですが、気がついたら無くなってた、というのは困ります。 という強引な前振りですが、search.cpan.orgでモジュールを探していて、「あれ? 確か前はあったはずなのに……」なんて経験、ありませんか? そう、例えば、今年の初めにはCPANにあったAcme::BabyEaterがなくなってたり、2003

  • パスワード保存のお供に Crypt::SaltedHash - JPerl Advent Calendar 2009

    パスワード保存のお供に Crypt::SaltedHash - JPerl Advent Calendar 2009 Perl に関するちょっとした Tips をのっけてみるよ。ちゃんと続くかな? こんにちは。はてなでは id:sfujiwara、それ以外のところでは fujiwara です。 Webサービスなどでユーザーのパスワードを預かる場合、「一方向ハッシュ関数を通した値を保存せよ」というのはよく知られた話だと思いますが、単に MD5 や SHA1 の値を保存するだけでは安全性に問題があります。 例えば Digest::MD5::Reverse というモジュールを使うと、MD5 の値を逆算することができてしまいます。 use Digest::MD5::Reverse; print reverse_md5("388c3c9c00e651cc163cbdd47f08c427"); # f

  • Tie::Traceで簡単に変数の中身を追う - JPerl Advent Calendar 2009

    前置き こんにちは、id:ktatです。最近は、Util::Allというモジュールをいじってますが、CPAN にはあげてないので、紹介できません。 というわけで、今日はデバッグのお供に使えるかもしれない、Tie::Traceを紹介します。 題 さて、perlのプログラムのデバッグするなら、perl -d というのも良いですが、print デバッグもお手軽でいいですよね。 しかし、怪しい変数を追いかけたり、見知らぬオブジェクトの中を調べたりするのに、いちいち print や warn を挿入していくのも面倒です。 そんな時には、Tie::Trace が役に立つかもしれません。 単純な例 次の $hoge、 @hoge、 %hoge の各変数を追いかけてみます。 use Tie::Trace qw/watch/; watch my $hoge; watch my @hoge; watch m