タグ

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

  • Perl::Tidyで明快コーディング! - JPerl Advent Calendar 2009

    Perlのコードを書くとき、CPANモジュールを作成するとき、そして就職活動時のエントリーで課題のperlスクリプトを提出する時に超実益的で役立つ、Perl::Tidyを紹介してみます。 使い方 以下のような汚いコードがあるとします。mud10years.plとでも名付けることにします。 use strict;use warnings;my $module="Perl::Tidy";my $user= "haoyayoi";my $desc1=" is so coolist module.";my $desc2= " Lets try it!";my $deschash = {module=>"$module", desc =>$desc1. $desc2, }; print $deschash->{module}.$deschash->{desc}." by $user"; このコードを

  • 書き捨てスクリプトを書くときに便利なモジュールと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
  • Test::Moreでテスト事始め - JPerl Advent Calendar 2009

    はじめまして。 最近Perlを始めたmyfinderです。 ほかの方が書いたCPANモジュールを紹介したりそれらを使ったTipsを書くCasual Trackということで、今回はテストに関連するモジュールについて書きます。 プログラムの「テスト」 テストを書くというのはデンタルフロスを使うようなもので、誰もが良いことだといいつつ、実際には軽視されがちだ。 なんて言われることもありますが、実際テストがないとプログラムの改修とか引き継ぎとかが非常に大変になりがちです。 また、CPANにアップされているモジュールの中には、モジュール体よりもテストコードの量の方が多いものも多々あります。 なのでプログラムの質を保証したり、内容を的確に伝達するにはテストが欠かせないものであることは間違いないと思います。 早速使ってみる 例えば消費税の計算をしてくれるConsumptionTax::JPというモジュ

  • Devel::NYTProf - モダンなPerl入門 - モダンなPerl入門

    開発がひととおりすんだが、なぜか速度がでない。そんなときにはプロファイラの出番です。 Devel::NYTProf をつかえば、プログラムのどこで時間がかかっているのかがまるわかりになります。 使い方は簡単です。 perl -d:NYTProf target.pl nytprofhtml とするだけ。 mod_perl にも対応しています。 なにより Devel::NYTProf の出力する HTML がカッコイイのがポイントですね。 目次へ Last modified: $Date: 2008-05-22T09:21:23.154313Z $

  • Devel::Cover - モダンなPerl入門 - モダンなPerl入門

    テストを漫然と書いても、網羅率の高いテストは書けません。「ふう。よく書けた」とおもって も、実はまだ網羅できてないところがあるものです。そんなわけで、網羅率をはかるために Devel::Cover をつかうとよいでしょう。 使い方は簡単です。 perl Makefile.PL make test するかわりに perl Makefile.PL HARNESS_PERL_SWITCHES=-MDevel::Cover=+ignore,inc make test cover または perl Makefile.PL cover -test -ignore_re "^inc/" とするだけ。 これで、モジュールのコードとt/以下のテスト内容を調べてカバレッジ率を出してくれます。 incをよけてるのはModule::Installのカバレッジを取っても仕方ないためです。 HTML が出力されるので

  • Cache::Memcached::Fast - モダンなPerl入門 - モダンなPerl入門

    memcached へのアクセスは Cache::Memcached::Fast がオススメです。高速かつ安定して動作します。 つかいかた use Cache::Memcached::Fast; my $memd = new Cache::Memcached::Fast({ servers => [ { address => 'localhost:11211', weight => 2.5 }, '192.168.254.2:11211', { address => '/path/to/unix.sock', noreply => 1 } ], namespace => 'my:', connect_timeout => 0.2, io_timeout => 0.5, close_on_error => 1, compress_threshold => 100_000, compress_

  • コマンドラインで使えるかもしれないツール等あれこれ - Articles Advent Calendar 2010 Casual

    鎌倉で毎日どんぶりべてます、sugyanです こんにちは! 皆さん、ターミナルやシェルは何をお使いでしょうか?僕は現在MacにてiTerm2+zshを使っています(あんまり使いこなせてませんが…)。 プログラミングして書いたコードを実行するには、ターミナルでコマンドを打つのがほぼ必須ですよね。皆さんも毎日たくさんのコマンドをターミナルで叩いていることと思います。 CPANで配布されているモジュールたちは、Perlスクリプト内でuseして使うためのものだけではなく、シェルから実行できるコマンドが用意されている場合もあります。[/articles/advent-calendar/2010/casual/1:title=1日目]で紹介されたperlbrewやcpanmも、Perlで書かれたコマンドラインツールですよね。 今回はそんなコマンドたちを紹介してみようと思います。 ■開発環境系 per

    コマンドラインで使えるかもしれないツール等あれこれ - Articles Advent Calendar 2010 Casual
  • 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
  • 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
  • Perlで文学を嗜む Net::AozoraBunko - Articles Advent Calendar 2010 Casual

    今年の Advent Calendar もいよいよ中盤戦。 もういくつ寝ると、メリークリ○○ス! きのうの Acme Track (Acme::Yomeru) につづいて Casual Track にやってまいりました bayashi です。こんにちは! さて、みなさん、コード書いてますか、コード読んでますか。 短く簡潔なコードを読むと、気持ちもスッキリしますね。 でも、たまには文学なんてどうですか。 Perl で文学が嗜めるなんて、なんか渋くないですか。 青空文庫 青空文庫 - Wikipedia国内において著作権が消滅した文学作品、あるいは著作権は消滅していないものの著作権者が当該サイトにおける送信可能化を許諾した文学作品を収集・公開しているインターネット上の電子図書館 古くは森鴎外、夏目漱石、芥川龍之介など、近くは中島敦(1942年没)、太宰治(1948年没)、林芙美子(195

    Perlで文学を嗜む Net::AozoraBunko - Articles Advent Calendar 2010 Casual
  • 記号だけのPerlプログラミングの基本原理 - Articles Advent Calendar 2010 Sym

    こんにちは。[/articles/advent-calendar/2010/casual/3:title=casual track 3日目]でも書かせていただきました、sugyanです。記号プログラミングはPerlくらいしかわからない素人ですが頑張って書いてみようと思います。よろしくおねがいします。 今日はPerlで記号プログラミングをするための基礎知識を説明します。Acme::EyeDropsでも使われているテクニックです。 ■Step1. アルファベットの変換 記号だけでPerlプログラムを書きたい! というとき、最も邪魔なのがアルファベットですね。まずはこれらをどうにかして記号だけで表現しましょう。 Perlの文字列は2つの文字列の論理演算で表現することができます。例えば 'A' という文字はASCIIコード0x41ですね。これをASCIIコード0x60の '`' と0x21の '!

    記号だけのPerlプログラミングの基本原理 - Articles Advent Calendar 2010 Sym
    gologo13
    gologo13 2010/12/13
    記号プログラミングの原理からわかりやすく解説!
  • Win32::GUITest と Win32::Clipboard で GUI 操作を自動化する - Articles Advent Calendar 2010 Win32

    こんにちわ。のどの痛みと熱でだいぶ体がだるい上に、開けていないフィギュアの箱を思いっきり踏んでしまって軽く凹んでいる xaicron です。 今日紹介するモジュールは Win32::GUITest というとってもナイスなモジュールです。 これの詳しい説明は、その昔に amachang が書いていますのでそちらを見るのが良いかと思います。 簡単にいうと、window 名から window を取得したり、キーボード入力やマウス入力をエミュレートしてくれる便利なやつです。 普段は、iTunes や foobar2000 を愛用していますが、たまに楽曲情報が見つからなかったりするときに、割と簡単に gracenote に情報を登録できるので SonicStage を使ってます。(最近、X-Application とかいう名前に変わってしまったみたいですが) しかし、これのインターフェースってまぁ当

    Win32::GUITest と Win32::Clipboard で GUI 操作を自動化する - Articles Advent Calendar 2010 Win32
  • 7種類の記号だけでPerlプログラムを書く - Articles Advent Calendar 2010 Sym

    ■前回のおさらい 前回は、"Hello world!"を出力するPerl記号プログラムとして以下のものを作成しました。 '' =~ ('(?{'.( ('['^'.').('['^'(').('`'|'%').' '.('['^'(').('['^'/').('['^')').('`'|')').('`'|'#').('['^'/').';'. ('['^'.').('['^'(').('`'|'%').' '.('['^',').('`'|'!').('['^')').('`'|'.').('`'|')').('`'|'.').('`'|"'").('['^'(').';'. ('['^'+').('['^')').('`'|')').('`'|'.').('['^'/'). (' +"'.('`'^'(').('`'|'%').('`'|',').('`'|',').('`'|'/')

    7種類の記号だけでPerlプログラムを書く - Articles Advent Calendar 2010 Sym
  • Windows GUI アプリケーションでの Perl プラグインの作り方 - Articles Advent Calendar 2010 Win32

    こんにちわ。Windows を殺したいほど愛している mattn です。 WindowsPerl を日常的に使っている日人3名の内の2人目です*1。 一般的に Perl はテキストを操作したり、Web アプリケーションフレームワークを構築する言語として有名です。しかし Perl の威力はそれだけでは止まりません。WindowsPerl をどの様に扱うかは人によって異なります。 人によっては Windows GUIアプリケーションを拡張する為の言語として使用するかもしれませんね。 Perl の様な柔軟な言語が GUI アプリケーションのプラグイン言語として使えたら便利だと思いませんか? 作りましょう! まずはWindows GUI アプリケーションを作ろう ここは Win32 SDK をどっぷり触ったオッサンなら誰でも作れますよね。 #include <windows.h> #

    Windows GUI アプリケーションでの Perl プラグインの作り方 - Articles Advent Calendar 2010 Win32
    gologo13
    gologo13 2010/12/12
    perlでもGUI作れるのか.
  • system 使用時にプログラムの終了を待たずに制御を返す方法 - Articles Advent Calendar 2010 Win32

    こんにちは。いつまでたっても Perl が全然わからないはせがわです。 ActivePerl を使っていて外部のコマンドを system で呼び出したはいいけど、そのプログラムが終了するまで system の呼び出し以降のコードがブロックされて困ったことはありませんか? 例えば print "abc\n"; system "notepad.exe"; print "def\n"; というコードだと、"def" が表示されるのは、起動したメモ帳が終了してからになってしまいます。 メモ帳が起動すれば終了を待たずに速やかに次のコードが実行されるほうが嬉しい場合もあります。 こういう場合は、system で直接 notepad.exe を呼び出すのではなく、いったん start コマンドを介するようにして起動します。 print "abc\n"; system "start", "notepad.

    system 使用時にプログラムの終了を待たずに制御を返す方法 - Articles Advent Calendar 2010 Win32
  • 続・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
  • 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
  • モダンなPerl入門 - モダンなPerl入門

    目次 Perlの概要 なにか なにか バージョン ラクダ画像とPerl 環境別インストール 基礎的なperldocコマンド 変数 スカラー(文字列・数値) 配列 ハッシュ リファレンス 条件分岐 if / elsif / else ループ foreach while デバッグ手法 print warn Data::Dumper YAML XXX ファイル操作 open() IO::File Path::Class stat() / -f / -d / -e / -x サブルーチン プロトタイプ 正規表現 メタキャラクター キャラクターセット データ tie Storable Encode 入出力の考え方 ワンライナー データベース DBI mysql PostgreSQL SQLite オブジェクト bless モジュール CPAN 各OSでのCPANのつかいかた WindowsでCPAN

  • 一行野郎(one-liner)はperlにおまかせ

    序文 もしもプログラミング言語が宗教だったら……(全訳版)[絵文録ことのは]2008/12/21 によると、ブードゥー教徒らしい dankogai です。 ブードゥー教徒らしく、「上司があなたに金曜夜21時に緊急の仕事を命ずるときにしばしば使われる」呪文をここでまとめておくことにします。 基中の基 コマンドとしてのperlは、スイッチがない場合、引数はスクリプト名として扱われます。 % cat hello.pl print "Hello, world!\n"; % perl hello.pl Hello, world! % コマンドライン中の文字列をスクリプトとして解釈させるには、-eを使います。 % perl -e'print "Hello, World!\n"' Hello, world! % ちなみに、perlとコマンド名だけで起動すると、標準入力をスクリプトとして返します。 %

  • perldoc を使いこなす

    国内滞在説が根強い miyagawa です。アメリカ合衆国国内という意味であれば、いつもそうなんですが。 今回は意外と知られていないと思われる perldoc コマンドの使い方を紹介します。perldoc は Perl モジュールに含まれる POD ドキュメントを整形して man 表示するツールで、perldoc モジュール名のようにして実行します。 % perldoc Web::Scraper -l オプションをつけるとそのモジュールのあるパス、-m オプションで POD の代わりにソースコードそのものを表示することができます。 % perldoc -l Web::Scraper /Library/Perl/5.8.6/Web/Scraper.pm # .pm ファイルを vi で開く % vi `perldoc -l Web::Scraper` # .pm ファイルを PAGER で開