タグ

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

  • モジュールのバージョンを確認するときどうやってますか? - Articles Advent Calendar 2010 Casual

    もう恋なんてしないなんて、言わないよ絶対kamipoです。 ときに皆さん、Perlのモジュールのバージョンを確認するときどうしてますか? 僕はPerlをはじめた最初のころ、ずっとこうやっていました。 $ perl -MAcme::Hidek -le 'print $Acme::Hidek::VERSION' 40.0 こうやってたの、僕だけじゃないですよね!? いまでは以下のワンライナーにaliasを張っているので毎回がんばってワンライナーを打たなくてよくなりました。 $ alias pmversion='perl -le '"'"'for $module (@ARGV) { eval "use $module"; print "$module ", ${"$module\::VERSION"} || "not found" }'"'" $ pmversion Acme::Hidek Ac

    モジュールのバージョンを確認するときどうやってますか? - Articles Advent Calendar 2010 Casual
    YAA
    YAA 2011/04/07
  • 書き捨てスクリプトを書くときに便利なモジュールと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
    YAA
    YAA 2011/04/07
  • Perlの開発環境をCasualに作ろう - Articles Advent Calendar 2010 Casual

    JPerl Advent Calendar Casual Track 一日目をやる myfinder です。 去年はlocal::libがもてはやされたりしていましたが、あれから1年の間にPerlは更に手軽に使えるようになりました。 初日、最初の一歩ということで今回はPerl開発環境を簡単に作るための手順をまとめます。 対象は基的にLinuxで、さくらのVPSとかその辺を想定しています。 Macでも同じようにやればできるでしょう。 Windowsの場合はわかりません。きっとWin32トラックの人が書いてくれると思います(ぉ perlbrew これまでは、システムの提供するPerl + local::libで環境を作っていたと思いますが、perlbrewの登場によってPerl体すらも自分のアカウント内に置くことが簡単にできるようになりました。 バージョンの切り替えもできるので、複数のバー

    Perlの開発環境をCasualに作ろう - Articles Advent Calendar 2010 Casual
  • ひらがなをカタカナに変換したいだって?それなら Lingua::JA::Regular::Unicode - Articles Advent Calendar 2010 Hacker

    ひらがなをカタカナに変換したいだって?それなら Lingua::JA::Regular::Unicode ここにきて気をだしている tokuhirom です。こんにちは。 Perl でコードをかいていると、全角カタカナを半角カタカナに変換したいとか、そういう要望ってよくあるとおもうんですよね。そんなときは Lingua::JA::Regular::Unicode をつかうといいですね。 use Lingua::JA::Regular::Unicode qw/alnum_z2h hiragana2katakana space_z2h/; alnum_z2h("A1"); # => "A1" hiragana2katakana("ほげ"); # => "ホゲ" space_z2h("\x{0300}"); # => 半角スペース ちょうべんり。 たぶん、だいたいのケースでいま実装されてる関数

    ひらがなをカタカナに変換したいだって?それなら Lingua::JA::Regular::Unicode - Articles Advent Calendar 2010 Hacker
    YAA
    YAA 2011/04/07
  • アレしたあとにコレしたい! - Articles Advent Calendar 2010 Hacker

    アレしたあとにコレする 「ファイルが変更されたらXXXしたい」ということは日常よくあるんじゃないかと思います。例えば: スクリプトファイルを編集していて、保存したらすぐに実行して試したい HTML, CSS, JavaScript ファイルを編集していて、保存したらすぐにブラウザをリロードして確認したい 秘蔵のアレコレを保管しているディレクトリにだれかcdやlsしてきたら、自動的に当該ディレクトリをrm -frしたい。 などなど。 今までは、Linux の Inotify という機能を Perl から使うためのモジュールLinux-Inotify2を使ったスクリプトを書いて使っていたのですが、とりあえずぼへらっと書いたものだったので、 監視スクリプト起動後に、新規追加されたファイルが監視対象にならない Linux でしか動かない というイケてない点がありました。 というわけで、今回書き直し

    アレしたあとにコレしたい! - Articles Advent Calendar 2010 Hacker
    YAA
    YAA 2011/04/07
  • HTTPサーバフレームワークとしてのPlack活用法と、Plack::Middleware::Pictogram::MobileJpを使ったその事例紹介 - Articles Advent Calendar 2010 Hacker

    HTTPサーバフレームワークとしてのPlack活用法と、Plack::Middleware::Pictogram::MobileJpを使ったその事例紹介 実はお腹回りが入らなくなってスーツを新調したhirose31です。 みなさん、Plack使ってますか? 弊社でもStarletをNginxのバックエンドに置いてプロダクション環境でモリモリ使っているのですが、ちょっとした検証にもPlackは大変重宝しています。 具体的には、キャッシュに関連するレスポンスヘッダ(Last-Modified、Expiresなど)の組み合わせと、条件付きGETやブラウザキャッシュの挙動をブラウザごとに調べたときに使いました。あくまで検証用と割りきって特にファイル分割などはせず、psgiファイルにゴリゴリっとベロっとコードを書いてパパパっと検証用のHTTPサーバを作りました。 このように、限定された目的のHTTP

    HTTPサーバフレームワークとしてのPlack活用法と、Plack::Middleware::Pictogram::MobileJpを使ったその事例紹介 - Articles Advent Calendar 2010 Hacker
  • DBIx::Inspector で DB の中をのぞきみる - Articles Advent Calendar 2010 Hacker

    ベストスピーカー賞をもらった tokuhirom です。 1981忘年会でのみすぎて、二日酔いが大変ひどいです。 さて、今回は裏をかいて、DBIx::Inspector の話をかこうかおもいます。最近わたくしは、Web エンジニアの7つのはしかのうちの一つである O/R Mapper を書いてます。 これは、高速で、ミニマリスティックで、安定していて、DBI をリスペクトしていて、みたいな、そんなのをめざしてます。 O/R Mapper かく人って、O/R Mapper をかくときに必要なものとかを、まるっと同梱したがりがちなんですね。 そういうつくりにしてしまうと、別個なかんじの O/R Mapper をかこうとしたときに、つかいまわしがきかなくていっぱいコピペしなくちゃいけないです。 それかなしいよねってことで、みんなが共通につかえるパーツをちょっとずつかいてみようかな、とおもってます

    DBIx::Inspector で DB の中をのぞきみる - Articles Advent Calendar 2010 Hacker
    YAA
    YAA 2011/04/07
  • Jonkで作るおれおれJobQueueフレームワーク - Articles Advent Calendar 2010 Hacker

    こんにちわこんにちわ!YAPC::Asia 2010でベストスピーカー賞(次点)を頂いた nekokak です。 今回は拙作 Jonk でオレオレJobQueueフレームワークを作るお話をします。 はじめに なぜJonkをつくったのかについては、JobQueueManagerについてを ご覧頂ければと思います。 簡単に言うと、やりたい事って案件によりけりだから、自分でその案件にあったJobQueueフレームワークつくれたほうがいいよね! です。 install $ cpanm Jonk だけです。依存モジュールはTry::Tinyというモジュール一個だけなので、 全く問題無く入るでしょう。 依存モジュールが殆ど無いのがJonkの売りの一つです。 JobQueueを管理するためだけに、よくわからないORMがインストールされてしまったり よく分からないモジュールがインストールされるのってやじゃ

    Jonkで作るおれおれJobQueueフレームワーク - Articles Advent Calendar 2010 Hacker
  • @INC にみる Perl のやりかたがいっぱい - Articles Advent Calendar 2010 Casual

    こんにちは。最近は PHP ばっかり書いている、永遠の Perl 初心者 hatyuki です。 とつぜん質問ですが、みなさんが最も多くみている Perl のエラーはなんですか? 自分の場合は、う〜ん。。。 Can't locate Hoge.pm in @INC (@INC contains: ~~~~ .). BEGIN failed--compilation aborted. かな?いつまでも進歩がないのが伺えますね! 皆さんご存知の通り、このエラーは "@INC" で指定されたディレクトリの中にモジュールが見つからなかった場合に発生するエラーです。つまり、モジュールをインストールし忘れているか、モジュールがどこに置いてあるのかを適切に設定していないか、の (およそ) どちらかですね。 さてさて、Casual Perler な皆さんは、このエラーを回避するためにどんな方法を使って @

    @INC にみる Perl のやりかたがいっぱい - Articles Advent Calendar 2010 Casual
    YAA
    YAA 2010/12/27
    corelist便利だな
  • 使っちゃいけない標準モジュール - 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
    YAA
    YAA 2010/12/27
  • 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
    YAA
    YAA 2010/12/23
  • そうだ、カレンダを出そう - Articles Advent Calendar 2010 Meta_adcal

    こんにちわ。mattn です。 カレンダ表示機能を追加しました。 カレンダって仕組みを理解しながら作らないといけないので、新人教育の題材としてカレンダ表示は良いんじゃないかなと思います。技術者のスキル判断基準にも出来るかもしれませんね。 では行きましょう。 Xslateに渡すオブジェクトとしては calendar という名前のハッシュリファレンスで、その下に rows というハッシュリファレンスの配列、各 row には cols という記事情報を格納したハッシュリファレンスを保持します。 カレンダは、まずその月の1日が何曜日で始まっているかを見て、そこまで空を表示する必要があります。 何個空白を入れれば良いかは、週の何曜日かで取得出来ますので Time::Piece の day_of_week を使います。 @cols = (); push @cols, { date => undef,

    そうだ、カレンダを出そう - Articles Advent Calendar 2010 Meta_adcal
    YAA
    YAA 2010/12/10
    Calendar::Simple使わず自前なのか
  • Kolonでかこう - Articles Advent Calendar 2010 Casual

    nihenです。こんにちは。 今年もブクマ数ビリを目指したいとおもいます! Perl界隈で今年はText::Xslateというテンプレートエンジンが流行っています。 しかしこのXslateで現在主流に使われているSyntaxはTTerse*1であり、XslateネィティブともいえるKolonはまだあまり使われていないというのが現状のようです。 というわけで今回はKolonの使い方の基を紹介します。 Perlコード側 use Text::Xslate; use Hash::MultiValue; my $tx = Text::Xslate->new(); my $var = { foo => 'xslate', bar => { baz => '111', bazbaz => '112', }, baz => [5, 6, 7], hoge => Hash::MultiValue->new

    Kolonでかこう - Articles Advent Calendar 2010 Casual
  • 続・Encodeでラクラク日本語処理 - Articles Advent Calendar 2010 Casual

    この考え方が当に正しいかを確かめるために、UnicodeのコードポイントがU+00E8である「è」という文字を使って試してみましょう。 use strict; use warnings; use utf8; use Encode qw/is_utf8 encode_utf8/; sub disp_hex($) { use bytes; join ' ', map {sprintf '0x%X', ord($_)} split //, $_[0]; } my $utf8flagged = 'è'; # 内部表現がUTF-8の「è」 my $latin1 = "\x{00E8}"; # 内部表現がLatin-1の「è」 for ($utf8flagged, $latin1) { print "Dump: ", disp_hex($_), "\n"; print "UTF-8 flag: ",

    続・Encodeでラクラク日本語処理 - Articles Advent Calendar 2010 Casual
  • /articles/advent-calendar/2010

    YAA
    YAA 2010/12/03
  • 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

    YAA
    YAA 2009/12/24
  • Acme::Oppaiで作る癒し系エイリアス - JPerl Advent Calendar 2009

    はじめに まず、冒頭からアダルティな文字列が出てきます。苦手な人は戻って違うページを見て下さい。 世の中にはalias acotie="rm -rf ./*"などと設定されているすばらしい常識人もいらっしゃるようなので 見習って癒し系aliasを作ってみました。 インストール Acme::Oppaiモジュールのインストール sudo cpan -i Acme::Oppai .bashrcに追記 alias yappo="perl -MAcme::Oppai -e 'print Acme::Oppai->oppai('your')->oppai('soul')->oppai('message')->oppai;';" $ source ~/.bashrc $ yappo _  ∩ ( ゜∀゜)彡 your ( ゜∀゜)彡 soul ⊂彡 _  ∩ ( ゜∀゜)彡 message ( ゜∀゜)

    YAA
    YAA 2009/12/22
    [Acme::Oppai]
  • Coroを使って並行処理 - JPerl Advent Calendar 2009

    こんにちわ。『層・圏・トポス』読者の会からの刺客、id:hirataraです。 「並行処理」って言葉はなんだか魅力的ですよね! そこで、今日はCoroを使った並行処理を紹介します。なお、Coroはコアモジュールではありませんので、使ってみたい場合にはCPANからインストールして下さい。 スレッドを作る Coroでは、asyncによって新しいスレッドを作ることができます。ただし、asyncでスレッドを作っても、何もしなければ他のスレッドに勝手に処理が移ることはありません。asyncで作成した別のスレッドに制御を移すには、明示的な操作が必要となります。ここではcedeを使って、asyncブロックへ処理を移しましょう。 use strict; use warnings; use Coro; async { print "Another thread\n"; }; print "main thre

    YAA
    YAA 2009/12/22
  • DBICx::Modeler::Generatorでスキーマクラス群とモデルクラス群を一発生成しよう - JPerl Advent Calendar 2009

    DBICx::Modeler::Generatorでスキーマクラス群とモデルクラス群を一発生成しよう - JPerl Advent Calendar 2009 Perl に関するちょっとした Tips をのっけてみるよ。ちゃんと続くかな? ご挨拶 はじめまして、gardejoこと守屋と申します。金融ユー子で働いています。YAPC::Asia 2009の特別研修で、(16日目を執筆された)dankogaiさんの研修の後に、(15日目を執筆された)lestrratさんなどの特別補講を受ける機会に恵まれたのですが、「業務でCOBOLを使っている人?」という質問にただ独り挙手して、たいそう恥ずかしい思いをしました。 そんな勤め先では定例作業撲滅のためなどにPerlをゲリラ的に活用していますが、現場レベルでの対症療法であるに過ぎません。私にとってのPerlとは、エスペラント日語翻訳システムの開発な

    YAA
    YAA 2009/12/22
  • BackPANで失せ物を探す - JPerl Advent Calendar 2009

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

    YAA
    YAA 2009/12/22