1. モジュール名を決める まず最初に モジュール名を決める。 パッケージ名の命名規則などについては、Perl style guide (perlstyle) などを参考にする。 既に CPAN に同名のものがないか検索してみる。 2. モジュールインストーラ方式を選ぶ シンプルなモジュールであれば、ExtUtils::MakeMaker ベースで作成するのが良い。 依存する CPAN モジュールが多い場合は Module::Install の利用も検討してみる。
Perlが得意でない筆者は、WindowsでPerl = Active Perlという式ができあがっていた。そして、CPANを使おうと思ってエラーが出てしまい、PPMを使うのだが、何かいまいち…という感が否めなかった。 Strawberry Perlの公式サイト。巨大なイチゴが目印。 恐らくWindowsでPerlを使われている方の中には同じ思いをした方がいるはずだ。そこで、Perlの実行環境自体を変えてしまおう。 今回紹介するオープンソース・ソフトウェアはStrawberry Perl、CPANがそのまま使えるPerl実行環境だ。 ActivePerlがnmakeベースであるのに対し、Strawberry Perlはgccを使って環境を構築する。そのため、CPANがそのまま利用できるようになっており、使い勝手がずいぶん良くなっている。 バージョン情報 また、最新版ではPPMやPARもサポ
This webpage was generated by the domain owner using Sedo Domain Parking. Disclaimer: Sedo maintains no relationship with third party advertisers. Reference to any specific service or trade mark is not controlled by Sedo nor does it constitute or imply its association, endorsement or recommendation.
Moose のコードを探索して理解を深めた 本日は Roppongi.PM の第一回 Moose コードリーディングがありました。 Mooseは、単純に使ってる分には分り易いのですが、その実装を見ようとすると途端に複雑さが増します。 とにかくメソッドの呼び出しのスタックが深い。MySQL程では無いにしろ曲者です。 今回はそんなMooseの挙動を把握する手がかりを掴もうという回です。 Moose.pm Moose.pmは、主にuse Mooseされた時にexportするメソッドの定義をしています。 use Mooseすると、extends,with,has,before,after,around,override,inner,augment,make_immutable($c->meta->make_immutableすべき),confess,blessedがexportされます。 そしてM
#!/usr/bin/env perl use strict; use warnings; use LWP::UserAgent; use POE::Filter::Line; my $filter = POE::Filter::Line->new; my $ua = LWP::UserAgent->new; ## POE::Filter::Line で $chunk を行入力に変換 $ua->get( 'http://d.hatena.ne.jp/naoya/', ':content_cb' => sub { my $chunk = shift; my $lines = $filter->get([ $chunk ]); for (@$lines) { print "got: $_\n"; } } ); POE::Filter は単独で使うことができます。LWP のコールバックと組み合わ
はじめに はじめまして。大沢と申します。 この連載では、筆者が実装したCPANモジュールのClass::Componentを題材にしつつ、近代的なPerlでのプラガブル(拡張可能)なソフトウェアの実装方法を紹介します。 今回は、Class::Componentの概要を説明します。 本連載で使うサンプルアプリケーション 本連載では、プラガブルなモジュールを作製するという事を考えて、Gopperというサンプルアプリケーションを元に解説を行ないます。 GopperはCodeRepos上のsvnリポジトリに置いてあるので各自checkoutしてください。 svn co -r 271 http://svn.coderepos.org/share/lang/perl/Gopper/trunk Gopper サンプルアプリケーションは連載中にも頻繁にupdateされる事が予想されますので、毎回リビジョン
以下のようなことで困っていました あるモジュールを入れるときに、 Makefile.PL に引数を渡してあげなければならない。 $ perl Makefile.PL INC=-I/俺の/includeでも、 cpan コマンドでやると全自動でやっちゃうので Makefile.PL に直接引数を渡せない で、いろいろ調べて 以下の方法で出来ました $ sudo cpan cpan > o conf makepl_arg INC=-I/俺の/include cpan > install Hoge::Fugao conf は cpan コマンドの設定を変えるコマンドですが、 o commit しなければ cpan シェル再起動で設定は元に戻るので安心ですね。
Blog Search when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${entry.path} [in template "__entry.ftlh" at line 3, column 25] - Reached through: #include "__entry.ftlh" [in template "entry.ftlh" at
さきほどHTTP::MobileAgentの0.27をCPANにアップしました。 HTTP::MobileAttributeがものすごい勢いで開発がすすんでいる今、 なんとなく寂しい今日この頃なのですが、とりあえずDoCoMoのguidに対応した次第です。 で、話の本題はこっちじゃなくて、今回のCPANアップでShipItを初体験しました。 ShipItはなにかってーと、svnやsvkやgit(?)などで管理しているCPANモジュールをさくっとCPANへアップするためのモジュールです。 どうやるかっていうと、ShipItがインストールされててかつ設定ファイルなどがちゃんと設定されていれば、コマンドラインでshipitと打つだけ!あとはShipItが勝手にリポジトリに適切なリリースタグをつけてくれて、CPANへのアップまでやってくれちゃうというすばらしいものです。 Brad++ とりあえずイ
今日の夢で出てきたアイデアを詳細に覚えていたので実装してみました。 ゆーすけべーのWebService::Simpleをさらに便利にするモジュール。 WebService::Simpleはいい感じなんだけど、まだちょっと冗長っぽいのでさらにシンプルに使えるような物を作った。 例えば先のページに出てる例でflickr searchだけど use strict; use warnings; use WebService::Simple; use YAML; use utf8; binmode STDOUT, ":utf8"; my $api_key = "your_api_key"; my $base_url = "http://api.flickr.com/services/rest/"; my $flickr = WebService::Simple->new( $base_url, {
WebService::Simple::Cabinet をリリースしました。 erogeekの処女作のWebService::Simpleが普通過ぎてドン引きしていた所、これを使ったモジュールの実装アイデアを夢の中で思いついたので、起きて速攻で実装しました。 WebService::Simple::Cabinetって言います。 昨日ちょろっと作ってみた所、面白そうとブクマされたのでCPANにうpしたけどindexはまだみたい。 リポジトリはhttp://svn.coderepos.org/share/lang/perl/WebService-Simple-Cabinet/trunk/からどうぞ。 何をする物かというと、miyagawaさんがWSDL/WADLっぽいって言ってたけどWSDLとかの説明が一番しっくりきました。 WebService::Simpleを使って簡単にアクセス出来るよう
サキとは彼女の自宅近く、湘南台駅前のスーパーマーケットで待ち合わせをした。彼女は自転車で後から追いつくと言い、僕は大きなコインパーキングへ車を停めた。煙草を一本吸ってからスーパーマーケットへ向かうと、ひっきりなしに主婦的な女性かおばあちゃんが入り口を出たり入ったりしていた。時刻は午後5時になる。時計から目を上げると、待たせちゃったわねと大して悪びれてない様子でサキが手ぶらでやってきた。 お礼に料理を作るとはいえ、サキの家には食材が十分足りていないらしく、こうしてスーパーマーケットに寄ることになった。サキは野菜コーナーから精肉コーナーまで、まるで優秀なカーナビに導かれるように無駄なく点検していった。欲しい食材があると、2秒間程度それらを凝視し、一度手に取ったじゃがいもやら豚肉やらを迷うことなく僕が持っているカゴに放り込んだ。最後にアルコール飲料が冷やされている棚の前へ行くと、私が飲むからとチ
さくらインターネットを利用しており,サーバを丸ごと借り切っていない場合は,ルート権限が無いためCPANを利用してPerlのモジュールをインストールすることができない. ディレクトリをあらかじめ用意 $ mkdir -p ~/local/var/db/pkg CPANに関する設定を編集 $ vi ~/.cpan/CPAN/MyConfig.pm で,いくつかの項目を設定する.mbuildpl_arg 以外は存在するので書き換える ---- 'make_install_arg' => qq[SITEPREFIX=$ENV{HOME}/local], 'makepl_arg' => qq[INSTALLDIRS=site LIB=$ENV{HOME}/local/lib/perl5 PREFIX=$ENV{HOME}/local], 'mbuildpl_arg' => qq[./Build --
さくらの共有サーバにCPANを、という話。しばしばotsuneさんの記事が引き合いに出されるのですが、うちのとは違うのか、そのままだとうまくいかんのよねーという部分があるのでちょっと書いておく。 http://www.otsune.com/bsd/tips/usercpaninstall.html さくらのシェルに入ったら、何の準備もしなくていいから、まずはCPANシェルを起動する。これまで何もしたことがなければCPAN 1.76の初回起動時の質問が出てくるので、適当に回答。肝の部分はcpan_homeを指定する部分と(これ、いまのさくらなら「/home//.cpan」というのが自動的に用意されるはず)、「Parameters for the 'perl Makefile.PL' command?」の部分。ここ、otsuneさんの記事では「PREFIX=~/local」以外にもいろいろ書い
date 2008-02-07 15:00:24 category Perl permlink here comment 0 trackback 0 sitemap.xmlとは、検索エンジンに対してクロールして欲しいURLを指定したり、その指定したURLの優先度を設定したりする事が出来るXML Formatの事です。 このXMLをサイト上に置いて、Google WebMaster Tool等で通知したり、robots.txtでSiteMapのLocationを指定する事によって、検索エンジンクローラが自動的にsitemap.xmlの場所を認識して、そのxmlファイルを参考にクロールしてくれるでしょう。 今回はこのsitemap.xmlをperlで動的に書く方法です。 いきなりですが結論です。 WWW::Google::SIteMapモジュールを使いましょう。 #!/usr/bin/perl
Perlにデフォルトでインストールされているモジュールを表示する 隣のO澤くんが「Perlにデフォルトで入ってるモジュールが何かあるのかわかんないんですよねぇ」とか言ってるから、ワンライナー: # もしModule::CoreListがインストールされてないなら cpan install Module::CoreList perl -MModule::CoreList -e 'print "$_\n" for sort keys %{$Module::CoreList::version{5.008008}} ' これで一発で出るよ! AnyDBM_File Attribute::Handlers AutoLoader AutoSplit B B::Asmdata B::Assembler B::Bblock B::Bytecode B::C B::CC B::Concise B::Deb
autobox を使ったコードをここ最近よく見た ので、ややいまさらですが自分もすこし遊んでみました。autobox は Perl の組み込みのデータ (bless されていないスカラー、リスト、ハッシュほか) をファーストクラスオブジェクトとして扱うための機構を提供するモジュール(レキシカルプラグマ)です。 #!/usr/local/bin/perl use strict; use warnings; use FindBin::libs; use autobox; use autobox::Core; use autobox::Encode; use autobox::Hatena::Feed; use autobox::Accessor; shift->b(qw/perl autobox/)->items->foreach(sub { $_[0]->title->encode('utf
Cache::Memcached::Fastを試す Perlの新しいmemcachedクライアント「Cache::Memcached::Fast」がでていたので試してみた 結論から言うと、これは使えそう。 まず、C::M::Fastはmemcached-1.2.4でサポートされた、append, prepend, cas, gets, gets_multiをサポートする唯一のPerlクライアントです。また、常に問題となるCache分散にKetama consistent hashing algorithmをサポートしているためCacheの組み替えを最小限にしてCacheサーバの追加が行えます。 手元のベンチマークでは50%〜80%、処理によりますが300%以上高速化されてます インストールは普通にCPANから行えます。ただし、memached-.1.2.4が動いていないとmake test
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
例えばこんなHTMLからニュースの一覧を取得することを考えよう。 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html lang="ja" xml:lang="ja" xmlns="http://www.w3.org/1999/xhtml"> <head> <meta content="text/html; charset=utf-8" http-equiv="Content-Type" /> <title>サッカーニュース</title> <body> <ul class="news"> <li> <a href="http://sports.livedoor.com/article/ve
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く