Redirecting… Click here if you are not redirected.
Redirecting… Click here if you are not redirected.
先週公開した、じゃらんWebサービスを使ったサンプルサイト「シンプル宿検索」にて、perlのソースコードも一緒に公開してみたのですが、さっそく興味を持ってくれた方から問い合わせを頂きました。 cgiを実行させようとしたら以下のエラーが出てしまいました: Can't locate Template.pm in @INC (中略) at search.cgi line 5 ... Template.pm モジュールがインストールされてないよ!って怒られています。あー、コード公開する際は必要なCPANモジュールも一緒に添付しといてあげたほうが親切なのかな?いやでもそれ面倒くさいし無理あるなあ・・・。 Webでキーワード "CPAN" を検索すると出てくるCPANの使い方系ページの多くは、そのサーバの root 権限を持っている前提で、サーバの共通ライブラリ下にCPANモジュールを追加する方法を紹
Perlの学習コスト高いよね、て感じのエントリが目立つのでふと思い返してみると、ぼくは1年前は 救命病棟でいうところのレベル4くらいでした。変数に our をつけると何がどう違うのかわかなかったりしたのを覚えてます。 その後1年、今はレベル8弱ってとこでしょうか。バグレポートはなるべく出すようにしていますが、車輪になりそうで、モジュールはまだ上げてません。 この1年どうやってレベルを上げてきたかなといえば、CPANあさり、これに尽きます。で、これから Perlやるぞって人にもしかして参考になるかもしれないので、ぼくがやってきた自己流の漁りかたを書いておきます。 1. まずはPerlStyleを読み直す miyagawa さんが以前 WEB+DB PRESS で連載していた Perl Style というのを、総集編マガジンで今も入手可能です。これはロギングとか OR マッピングなどの基本的題
https://github.com/tokuhirom/node-perl/ ここ最近、プログラミング言語同士の壁が徐々に破壊されている気がします。あるプログラミング言語上で別なプログラミング言語を動くようにしたり、置き換えてしまったりするような類です。今回はその一つ、CPAN moduleをnode.js上で動かすという、かなり無茶な気がしなくもない、そんなソフトウェアnode-perlを紹介します。 var Perl = require('../index.js').Perl; var perl = new Perl(); perl.use('LWP::UserAgent'); var ua = perl.getClass('LWP::UserAgent').new(); var res = ua.get('http://mixi.jp/'); console.log(res.as_
Perl › 環境構築 (この記事の内容は古くなっています、現在はcpanmを使ってモジュールをローカルにインストールするのが簡単でしょう。cpanmによるローカル環境構築を見てください。) otsuneさんのところでさくらインターネットのレンタルサーバでCPANを使用する方法が紹介されているのですが、一部手作業が発生するので、すべてコピペで実行できるように手順化してみました。 さくらインターネットサーバcpan導入手順 # ライブラリのためのディレクトリの作成 mkdir -p ~/local # CPANの設定ファイルを作成 echo no | cpan # cpanコマンドの設定ファイルMyConfig.pmの書き換え # ( __END__の行まで一気にコピーして実行してください。とまった場合はEnter ) perl - ~/.cpan/CPAN/MyConfig.pm > ~/
miyagawaさんが紹介されていたlocal::libを使って非rootでのCPAN環境を作ってみました。平たく言えばさくらインターネットのレンタルサーバで一般ユーザーでCPAN環境を作ってみました。 とはいえ、多くは先人たちの otsune's FreeBSD memo :: ユーザー領域にCPANをインストールする方法 さくらインターネットでCPAN - Charsbar::Note と大差ありません。 まずはlocal::libのアーカイブを取得・解凍します。最新のバージョンは1.003001です。 wget http://search.cpan.org/CPAN/authors/id/A/AP/APEIRON/local-lib-1.003001.tar.gz tar xzvf local-lib-1.003001.tar.gz cd local-lib-1.003001 ots
少し前にmizzyさんに そういえば、まっさらなサーバを30分で本番投入できるようにする で stanaka さんが「CPANの依存関係を解析してrpm化する手製スクリプトで、CPANモジュールのrpm化が、ほぼ自動化されています」と書いてるんだけど、これって公開してくれないのかなー。 HowToRpmizeCpanModules - mizzy.org - Trac と突かれたので、githubで公開してみます。 http://github.com/stanaka/cpan-dependency/tree/master 突かれたついでにmizzyさんに軽く動作確認してもらったところ、それなりに動いているようです。また、はてなでは、このスクリプトを利用して、日々それなりの数のCPANモジュールのrpm化を行っていますので、だいたいうまく動くのではないかと思います。 CentOSやFedor
http://www.cpan.org/。Perlのライブラリ・モジュールソフトウェアやその他のPerlで書かれたソフトウェアを集めた巨大なアーカイブで、世界中のサーバーにその内容がミラーされています。 対象読者 Perlを実行できる環境にて携帯サイトの構築を考えている方。 必要な環境 Apache 1.3系または2系 Perl 5.6以上 User-Agentより端末判別を行う 携帯サイト構築の主な処理として挙げられるのがUser-Agent解析によるキャリア、モデル、シリーズなどの分類処理かと思われます。iモード、EZweb、Vodafoneの3キャリアを判別するだけでも複数のパターンが存在しており、端末のモデルを取得するまでにはさまざまな条件分岐処理の記述が必要となります。それらをスマートに行う方法はHTTP::MobileAgentを使うことで、User-Agent
Perlのモジュールをインストールしよう! サーバーにPerlの各種モジュールをインストールするには、CPAN を使うと超ラクチンです。 ここでは、サーバーにモジュールをインストールするためのツール、CPANの設定方法と、その使い方を解説します。 このセクションは、Linuxサーバー向けに書かれております。 CPANとは 「モジュール(機能のかたまり)」を簡単にインストールしてくれるシステムです。* 自動的に、モジュールの最新ソースファイルを取って来て、コンパイルし、インストールし、依存関係も解決してくれる優れものです。 CPANの環境を設定する CPANのスクリプトはたいていのLinuxディストリビューションに標準で入っています。 ただし、まずは設定が必要です。楽をするためには、それなりの努力がいるようです…。 shell(コマンドライン)で、以下の通り打ちま
最近のWebかいわいでは、Webアプリケーション同士が連携してどんどん面白いサービスが生まれています。しかし、Web上のサービスは手元にソフトウェアも何も残らないので、どうしても雲をつかむような分かりにくさがあります。そこで本連載では、Webサービスを実際に利用/作成しながら、そういった「今どき」のテクノロジーを学んでみたいと思います。 今どきのWebプログラミング、教えます この連載では今どきのWebプログラミングを解説していきます。Webプログラミングというと一見難しそうに思えますが、ライブラリが豊富な最近のスクリプト言語を使えば、かなり簡単に高機能なWebサービスが実現できます。本稿では、特にライブラリが充実しているPerlを使うので、各種Webサービスの開発も「実は結構手軽で簡単なもんだ」と理解していただけるかと思います。 今回から数回はその足がかりとして、Perlのライブラリ群C
CPAN::Mini で CPAN のミラーをローカルに DECON で話してきたネタですがちょっと詳しく。 飛行機やら電車の中やらでオフラインハックするときに(たまに)問題になるのが CPAN モジュールの不足です。「あぁ、このマシンにはあのモジュール入ってねぇ~」とかでハックが滞るのは萎えます。というわけで minicpan。CPAN::Mini というモジュールで、CPAN モジュールの最新版だけを持ってきてミラーをつくることができます。 導入は簡単で、CPAN から install CPAN::Mini すると minicpan というコマンドが付属してきます。コマンドラインから使うには、 > minicpan -r http://ftp.funet.fi/pub/languages/perl/CPAN/ -l ~/minicpan とかすれば finet から HTTP で同期で
Welcome to CPAN The Comprehensive Perl Archive Network (CPAN) currently has 218,535 Perl modules in 45,280 distributions, written by 14,502 authors, mirrored on 1 servers. The archive has been online since October 1995 and is constantly growing. Search CPAN via metacpan.org
FreeBSD Tips and Memo (Jail, ports, etc.) http://www.otsune.com/bsd/ ユーザー領域にCPANをインストールする方法 Last updated $Date: 2011/03/22 06:19:28 $ 追記 いまは local::lib (devel/p5-local-lib) を使えば下記の設定と同じ事が出来ます。そのモジュールを使う事を強くお勧めします。 追記2 さらに今時は cpanm (devel/p5-App-cpanminus) をインストールしても同様のことが出来ます。 最近は local::lib を直接つかわないでもいきていけるという話 - TokuLog 改メ tokuhirom’s blog CPANとは? CPANはComprehensive Perl Archive Networkの略で、Perlの
エントリの続きはこちら→CPANモジュールのアンインストール(改良版) - ヒルズで働く@robarioの技ログ あるCPANモジュール(以下ディストリビューションと呼びます)をアンインストールしてみます。 まずは色々紹介しながら回りくどくやってみます。最後に簡単な方法を紹介します。 消したいディストリビューションを確認 自分が消したいディストリビューションが分からなかったら、 % perldoc -tT perllocal | grep Module # 見た目より速さ優先ならこっち % grep Module `perldoc -l perllocal` でインストール履歴が出ます。perllocal.podにはインストールしたディストリビューションの一覧が時刻と共に記録されていて「昨日インストールしたアレアレ…何だっけ?」という時には割と使えます。 モジュール名とディストリビューショ
最近、久しぶりに新規コードを書いたんですが、そのテスト書く中でTest::Mock::Guardってモジュール使って便利だったんで、ここらで、動作確認テストを書く上でいいな(使ってみたいな)って思ったモジュール群やテスト関連ネタを個人的なメモとしてまとめておきたいと思います。 いいなって思うPerlの動作確認テスト系CPANモジュール群 私が実際に普段使っているものから、これいいなー使ってみたいなーと思うものまで、一覧にまとめて見ました。結構いろんなモジュール使わないと、いい具合にTDDってできないものだと思います。 入門編 モジュール名 概要 参考日本語記事
Perlが得意でない筆者は、WindowsでPerl = Active Perlという式ができあがっていた。そして、CPANを使おうと思ってエラーが出てしまい、PPMを使うのだが、何かいまいち…という感が否めなかった。 Strawberry Perlの公式サイト。巨大なイチゴが目印。 恐らくWindowsでPerlを使われている方の中には同じ思いをした方がいるはずだ。そこで、Perlの実行環境自体を変えてしまおう。 今回紹介するオープンソース・ソフトウェアはStrawberry Perl、CPANがそのまま使えるPerl実行環境だ。 ActivePerlがnmakeベースであるのに対し、Strawberry Perlはgccを使って環境を構築する。そのため、CPANがそのまま利用できるようになっており、使い勝手がずいぶん良くなっている。 バージョン情報 また、最新版ではPPMやPARもサポ
最近同僚が次々とCPAN Authorになってて良い流れだなーとか思っています。 ただ、CPANへのモジュールの上げ方がわからないとか、M::Iを使えばいいのか M::Bを使えばいいのか、それらがそもそも何やってるのか分からないという話も 聞くので、僕自身もその辺の知識を整理してアップデートしました。 とりあえず、今はModule::Buildを使っておけば良いんじゃないかと 思っていますが、そこに至る歴史的経緯をまとめてみます。 大体、以下に書いてあることに加えて、最近の動きを書いています。 Module::Build:MakeMakerの後継者を目指して PerlでCPAN形式のモジュールを配布する場合は、Makefile.PLなりBuild.PLなりを モジュール作者が用意して、それがインストールに必要なファイル類を自動生成 するという流れになっています。 既存の雛形を使うと色々ファ
久しぶりに Perl モジュールを作成してみた ので、せっかくなので CPAN にアップロードしてみました、の手順をメモ。 もともと、2002年に CPAN へのアップロードサイト PAUSE 用のアカウントは 作ってあったけど、実際に自作モジュールを CPAN で公開してもらったことはなかったので、 実は今回が初挑戦でした。 もし↓に間違っている点がありましたら、ご指摘いただけると幸いです。>識者の方 配布用のモジュールを作成する まず第一歩は、 perlnewmod - 新しいモジュールを配布するには を熟読すること。 モジュール .pm ファイルと、 そのアーカイブ .tar.gz ファイル を作成するのが最初です。 中身は以下のようなファイル構成になりました。 lib/XML/TreePP.pm # Perlモジュール本体 Makefile.PL # ほぼh2xsで生成したそのまま
2006年08月30日 CPAN→Plaggerインストール(レンタルサーバさくら) 日常的に Perl を触る機会がなく、CPAN など利用した事すらないのだが、とりあえず「じゃぁPla」と言ったので調べてインスコするまでしてみた。 もう Plagger インストールの話も飽きただろうけども、めも的に残しておく。 簡単に説明すると、Plagger をインストールするためには、管理者権限がなければ、CPAN経由でインストールが現実的で、その為にはインストールするサーバに Telnet or SSHでログインできて make が使える事が必須である。 意味が分からない人の為に説明してもよいが、今回はそれをすると長くなるので今度にする。 今日の対象は、レンタルサーバで root 権限がない人(とくにさくら)への情報と、自分の為のメモだから。 ● CPANをユーザー領域にインストールする はっき
さくらインターネットを利用しており,サーバを丸ごと借り切っていない場合は,ルート権限が無いため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 --
作りました。 http://cpan.ma.la/ Firefox用パネル。ブックマークしてプロパティ→サイドバーに読み込む。 http://cpan.ma.la/panel.html 全モジュールのリストを改行で区切ったテキストファイルを受信してクライアントサイドで検索させています。クライアントサイドで検索させているのでサーバー負荷は全くかかりません。 仕組み省メモリ、高速に動作するように工夫してあります。 - 配列に変換せずに一つの巨大な文字列から検索 → 切り出し。 - クロージャで次の検索結果を取得する関数を保持しておいて、描画が必要になった時点で検索を実行。 -- その代わりにトータルのヒット件数がわかりません。 今の所の機能- 上下で選択、エンターでperldoc表示、マウスクリックでもperldoc表示。 - 正規表現がおかしくなければ、そのまま使えます。 -- 例えば \d
なにかと BK がつきまとう携帯サイト開発ですが、「これを入れると携帯対応ができます」的な単一の何かに乗っかった形ではなく、『各課題をそれぞれモジュールで解決する』という方向のサンプルサイトを作ってみました。 MobileCat 実はモバゲー、mixi はじめ Perl はそうとう携帯サイトの裏で動いていますが、いかんせん各社歴史が古いからかほとんどが独自の Web フレームワークで動いてるんですよね。そこをふまえ、今のところ一番一般的である Catalyst を使ってみています。 Mobile + Cat[alyst] なので MobileCat。名前から発想した後付けで、デザインをネコにしたり適当なネコ語になるようにしてみた。ネコは林くんに描いてもらった。 サイトは絵文字変換のテストが楽にできるよう twitter 的なもので、無駄に端末 ID 認証やメールで投稿できる機能が入ってたり
いくつか、分かっていることとわかっていないことがあります。 以下に分かっている範囲でのポイントを挙げます。 Timeout for inactivity during Makefile.PL? [0]では0(デフォルト)にする ここでTimeoutを指定してしまうと、完了またはタイムアウトの通知にalarm関数を使います。 alarm関数はActivePerlでは実装されていないため、エラーになります。 makeは、perl -V:makeが返すものを使う makefile.plはperl -V:makeが返すmakeプログラムにあったmakefileを作るようです。 perl -V:makeがnmakeを返す場合、dmakeを使うとエラーが発生します。 これ以外の設定は、実施者の任意で構いません。 私が意識して行った設定は以下のものです。 Select as many URLs as y
えーっと、一応 CPAN サイトを読みまくったのですが、英語が苦手なためか、ずーっと CPAN Author の登録手順やら CPAN へのモジュール登録手順がわかりませんでした・・・orz 幸いなことに、社内のモヒカン族な方に PAUSE ってキーワードを教えて頂きました。ググッたらすぐに情報でてきました。この前の Shibuya.pm でライトトークされてた、kawasaki さんのサイトに [Perl] 作成したモジュールをCPANで公開する手順 とそのまんまのタイトルで手順でてました。PAUSE ってキーワードがわからないと、このページにすらたどり着けなかったです・・・orz ってことで、以下登録までの備忘録。 1. PAUSE(Perl Authors Upload Server)のアカウントを取得します http://pause.perl.org/pause/query?ACT
Data::Model っていう ORM みたいの CPAN にあげたよ あざーす。循環参照しすぎるとバターになる。。なんでそんなに人の目を気にするのだろうと、マジレス。 早速ですが Data::Model っていう O/Rマッパー 的な物を CPAN にあげました。 Data::Model http://github.com/yappo/p5-Data-Model/tree/master 元来は MVC モデルで言う所の Model を一括でまかなえるつもりで実装していますが、ロジック処理は普通の Perl のクラスで書いちゃった方が潰しが聞くため、主にストレージを Perl のオブジェクトにマッピングする ORM 的な使い方が主流となっています。 そして、 Data::Model の多くの実装や設計などは Data::ObjectDriver を参考にして開発しました。 他にも後述して
「Sun Fire V20z を Webサーバ用に購入」や「Apache bench 対決 : Xeon vs Opteron」の記事で書いたように、本業で使っている web サーバは Sun Fire V20z というサーバなんですが、Dell の Xeon サーバとかに比べてベンチマークで比較する数値以上に実務アプリ(Web + DB サーバアプリケーション)の動作がすこぶる機敏です。 ってな訳で、再びサーバ増設で Sun Fire V20z を購入してインストール作業をしているのですが、CPAN のインストールで苦戦中。どうも CPAN サーバによって MD5 - checksums で転けてしまうんです。具体的には、
CPAN を使えば Perl はもっと便利になる CPAN とは Perl に様々な機能を追加する「モジュール」を簡単にインストールする システムのことである。 基本的には ネット上の CPAN サーバにあるモジュールのファイルをダウンロードし コンパイルして インストールする モジュール同士の依存関係があればそれも同時に取ってくる という最近ありがちなことをやってくれる。 同様なものに Debian の apt とかがあるが、CPAN の歴史は割と古い方だろう。 非常に便利だ。 詳しくはコマンドラインで「perldoc CPAN」とすればいろいろ教えてくれる。 まずは使ってみよう 準備作業 # which lynx /usr/bin/lynx # export ftp_proxy=http://proxy.you.com:8000/ # export http_proxy=http://
これまでサービスで使うCPANモジュールの管理と言えばrpm/debパッケージが主流だと思いますが、最近ではperlbrewで使いたいバージョンのperlをインストールすることもあり、rpm/debでは対応できなくなってきています。 perlbrewのperlに対してプロジェクトが依存しているCPANモジュールを入れる際、 $ perlbrew switch perl-5.12.3 $ cd /path/to/MyProj $ perl Makefile.PL $ cpanm --installdeps . などと cpanm —installdeps が使えます。 しかし、これではサーバを新規セットアップするたびに、最新のモジュールが入ることになりサーバ間でモジュールのバージョンの差異が生まれる可能性があります。 そこで対応策として考えられるのが開発サーバで—installdepsを実行
CPAN を使えば Perl はもっと便利になる CPAN とは Perl に様々な機能を追加する「モジュール」を簡単にインストールする システムのことである。 基本的には ネット上の CPAN サーバにあるモジュールのファイルをダウンロードし コンパイルして インストールする モジュール同士の依存関係があればそれも同時に取ってくる という最近ありがちなことをやってくれる。 同様なものに Debian の apt とかがあるが、CPAN の歴史は割と古い方だろう。 非常に便利だ。 詳しくはコマンドラインで「perldoc CPAN」とすればいろいろ教えてくれる。 まずは使ってみよう 準備作業 # which lynx /usr/bin/lynx # export ftp_proxy=http://proxy.you.com:8000/ # export http_proxy=http://
この前WebService::Bitlyというモジュールを作ってCPANに登録したので、忘れないうちにそれを行なうまでの手順をメモしておきます。これからCPANモジュールを作る人の参考になればと思います。 0.いろいろなドキュメントを読んでおく 間違ったモジュールをCPANに上げると迷惑がかかるようなので、最低限下のドキュメントは読んでおいたらいいと思います。 PAUSE: The CPAN back stage entrance perlnewmod - 新しいモジュールを配布するには - perldoc.jp 1.モジュール名を決めて、ひな形を作る まずモジュールの名前を決めます。CPANモジュールは、「このようなモジュールはこの名前空間」のような慣習があるようなので、それを考えながら決めます。 名前が決まったら、モジュールのひな形を作ります。僕はModule::Starter::PB
ExtUtils::Install, ExtUtils::Installed を使うと cpan コマンドでインストールしたモジュールについてあれやこれや調べる事が出来ます。 インストールされているモジュール一覧 perl -MExtUtils::Installed -le 'print join "\n" => sort ExtUtils::Installed->new->modules;' 特定のモジュール名が属する dist に含まれるファイル一覧 $ perl -MExtUtils::Installed -le 'print join "\n" => sort ExtUtils::Installed->new->files(shift @ARGV);' YAML::Syck /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi
僕はWebアプリの開発言語にPerlを使っていますが、Perlで書くためのWeb Application Frameworkとして、 Mojoliciousを最近では利用しています。 Web Application Framework(WAF)とは、 Webアプリケーションの開発を効率的に行うためのライブラリ群(つまりフレームワーク)で、これがなければ少しでも大きめのアプリになると大変な思いをします。以下Mojoliciousについてとりあえずの、参考リンクです。 ちなみに昨日かな?Mojoliciousはバージョン3.0が出ました。 PerlのWAFはMojolicious推しな件とそのノウハウ - ゆーすけべー日記 Mojolicious - Perl real-time web framework Mojolicious 3.0 released: Perl real-time we
cpanのモジュール群を使いたいというのでperlを使い始めたんですが、肝心のcpanの使い方がイマイチ解っていなくて、いつも恐る恐る使っていたので、メモ代わりにまとめる事にしました。 まずはcpanコマンド自体の使い方等 最初にする事 # 最初にcpanコマンドを叩いた時にプロンプトに従って設定をした後に cpan> install Bundle::CPAN cpan> reload cpan これでヒストリとタブ補完が可能になる。 cpanの設定 初期設定 (最初にcpanコマンド叩いた時のプロンプトを再度実行する) cpan> o conf init 書込み cpan> o conf commit 設定確認 cpan> o conf 個別設定 cpan> o conf item $value モジュールの更新 インストール済みモジュール一覧の表示 $ find `perl -e 'p
以前に作って、プロダクションでもいくつかのサービスに導入している MHA::AWS ですが、failover 方法を ENI 付け替えの他に VPC Route Table の書き換えもサポートしました。 ENI付け替えでは同一 Availability Zone 内での failover しかできませんが、VPC Route Table の書き換えによる方法では Multi-AZ 環境での failover も可能になります。 CPANにも上げましたので、 cpanm MHA::AWS でインストール可能です。 MHA::AWS - A support script for "MySQL Master HA" running on AWS - metacpan.org fujiwara/MHA-AWS · GitHub 以前の紹介記事 → #11 MySQL Master HA を AW
_ [システム運用][Perl] Apache Combined Log を効率的にパースする正規表現メモ ググるとよく見つかるのははてな - Apache形式のログを解析する正規表現を教えてください (Geekなぺーじ : アクセスログの読み方(apache combined logの場合)) の ($host, $ident, $user, $time, $request, $status, $bytes, $referer, $agent) = ($line =~ /^(.*) (.*) (.*) \[(.*)\] "(.*)" (.*) (.*) "(.*)" "(.*)"/); だが、最長一致の .* が多数登場するためか、マッチ処理がとても遅い。たった10万行パースするのに Core2 使って23.7秒ってあり得なくね? できるだけ最短一致でマッチさせるように ($host,
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く