This domain may be for sale!
縁あって4年ぶりぐらいにPerlを触り始めました。前は共用サーバでCGI書いてただけなので、今時のPerlな知識は皆無。 まず引っ掛かったのがCPANモジュールのインストール。インストールしたモジュールは特定のディレクトリにまとめて、rsyncなりsvnで各サーバ間の同期を取りたいんだけど、これがなかなか厄介。 Plaggerのインストール(非RPM) - ヒビノキロク とか otsune's FreeBSD memo :: ユーザー領域にCPANをインストールする方法 を参考に$HOME/.cpan/CPAN/MyConfig.pmを設定してみたけど、何故か依存モジュールが/usr/libに入ろうとなさる。具体的にはDBIx::Classを入れようとしたら、Class::C3がどうにも/usr/lib以下に入ろうとするとか。 cpan2rpmは依存関係を自動で解決してくれないので挫折。こ
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 で同期で
Not your computer? Use a private browsing window to sign in. Learn more about using Guest mode
Linux 環境に Perl のモジュールを追加導入することはよくあります。しかし、そのインストールに RPM を使ったり、CPAN で行なったり、Tarball からコンパイルしたり、別のサーバから取ってきたファイルをただ抛り込んだりと、いろいろな方法で行なっている場合、次第に管理ができなくなってしまいます。複数のバージョンが混在してバグの原因にもなりかねません。 Red Hat 系の Linux の場合は、パッケージ管理を RPM で行なうのがお約束というか流儀です。RPM を使っていればファイルの衝突や依存関係のチェックもしてくれますし、不要になればきれいにアンインストールもできます。ところが、実際には利用したいモジュールの RPM が存在しないということが往々にしてあります。そんな場合でも私は RPM を自分で作ってからインストールしていますが、そんなことができる人も少ないのではな
http://search.cpan.org/~hayashi/Term-ReadLine-Gnu-1.15/eg/perlsh 最近 perl を勉強中で、ちょくちょく挙動に関する疑問が出てきます。ですが Ruby における irb のようなインタラクティブシェルが無い(と思っていた)ため、挙動をちょくちょく調べるのに、エディタ開いてソース書いたりしていてめんどくさい!と思ってたりします。 しかし今日 id:hideoki が挙動チェックでなにやら便利そうな対話型のシェルを使っており、それが perlsh というインタラクティブなシェルでした。 $ perlsh # 起動 main[10]$ @ary = qw(1 2 3 4 5) 1 2 3 4 5 main[11]$ map { $_ * $_ } grep { $_ % 2 } @ary 1 9 25 のように対話的に実行でき、返
Rubyを使ってて便利なのが、ちょっとした挙動を確認したい時にirbが使えること。シェル端末が常に画面内にある環境では特に重宝します。ここ最近は電卓代わりにもなってるし(笑) で、同じようなものがPerlにもないかなー、と思って検索してみたら、同じことを考えた人がいた。どうやらCPANにTerm-Readline-Gnuというものがあるらしい。 というわけで、さっそくインストールしてみた。2nd lifeさんのところにも書いてあるように、お目当てのperlsh自体は手動でパスの通っている場所にコピーしなければならないのが惜しい。動作はほぼ期待通り。その名の通りreadline流のキーバインドでストレスなく使える。挙動もirbと同じく、評価された値が表示されるようになっているのが良い。とりあえず簡単な動作確認ぐらいには、これで充分かな。 と言うか、なんで最初からPerl本体にこれが付いてない
202506 « 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 » 202508 前に書いた通り手動でMakefileをgcc対応にすることができるけど、CPANシェルなんかを使う時は手動ってわけにはいかない。 で、どうやらperl5.8なんかを入れると、きちんとgcc対応のMakefileを生成してくれる/usr/perl5/5.8.4/lib/Sun/Solaris/PerlGcc/Config.pmとかが用意されてて、これを既存のConfig.pmと置き換えると良いらしい。 けど、手元のサーバはperl5.6だし、gcc用Config.pmはなかった。 ということで、↓みたいに手動でConfig.pmを修正。 cc='cc' → cc='gcc' cccdlfla
以下のようなことで困っていました あるモジュールを入れるときに、 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 シェル再起動で設定は元に戻るので安心ですね。
管理しているサーバで、ちょっとしたモジュールをインストール。CPANがポート制御の都合で使えないので、サイトからダウンロードして perl Makefile.PLを実行。 そうするとなぜかコンパイラにccを指定してきてエラーになる。うーん、こまった。 ちょいと調べると、Makefile.PLを実行してMakefileを作成するとき、 /usr/perl5/5.8.4/lib/sun4-solaris-64int/Config.pmを参照するらしい。で、gcc対応のConfig.pmもちゃんと用意されていて、これは/usr/perl5/5.8.4/lib/Sun/Solaris/PerlGcc/Config.pmにある。 これをsun4-solaris-64intへコピーしてちゃんとgccを参照してくれるようになりました。
モジュール ここまでは Socket、IO::Socket、IO::Select モジュールを 使ってきましたが、これらは標準モジュールですので わざわざインストールする必要はありませんでした。 この他にも、さらに便利なモジュール Net::POP3 と Mail::POP3Client Net::FTP などがありますが、どちらも (少なくとも perl5.005_05 の時点では) 標準モジュールではないので、自分でインストールしなければいけません。 まず、モジュールの探し方ですが、 Net::POP3 モジュールは libnet-1.0607.tar.gz というファイルに 含まれています。このように、モジュール名とアーカイブ名が 別々なこともありますので注意して下さい。 アーカイブ名がわかっているなら http://www.ring.gr.jp/local/search-j.htm
今日で株式会社ソフリットが設立されて1年です。また「会社を作って1年たったまとめ」を書こうかとも思ったんですが、あんまり面白くならなかったので、今年覚えたことのうちでいちばん重要そうなことをまとめようと思います。それは「Makefile.PLを書こう」ということ。 ではさっそく、これからHoge.pmというperlモジュールを書くとしましょう。 [danjou@guido] $ mkdir Hoge [danjou@guido] $ cd Hoge ここでおもむろにMakefile.PLを書き始めます。 [danjou@guido] $ vim Makefile.PL use inc::Module::Install; WriteAll; とりあえずこれだけ書いて保存します。そしてperl Makefile.PLとして実行します。 [danjou@guido] $ perl Makefil
by Hippo2000(2000/7/6 8/6更新) とりあえず紹介というか目安というか...。まずは書いてみて、あとで突っ込まれて修正しようかと思っているのですが。 更新履歴: 2002/1/22 : 指摘を受けて、解凍してコピーで誤字を修正+リンクを修正 目次 1.インストールまでの流れ 1.1 モジュールの特定 1.2 モジュールが既にインストールされていないか 1.3 PPM 1.4 モジュールのビルド 1.5 解凍してコピー 2. ビルドについてのエトセトラ 2.1 普通のユーザでモジュールをインストール 2.2 スタティックリンク 3. リンク集 1.インストールまでの流れ そんなモジュールをインストールするまでの流れを図にすると以下のようになります。 それぞれの内容について説明します。 1.1 モジュールの特定 それが何と言う名前のモジュールなのかが
何通りかあります。 yes コマンド yes '' | cpan -i Some::Module yes に空文字列を引数に与えないと、'y' をパイプに送ってしまい、デフォルト値選択ではなく、必ず y を選択してしまうので注意! 環境変数 PERL_AUTOINSTALL PERL_AUTOINSTALL='--defaultdeps' cpan -i Some::Module or export PERL_AUTOINSTALL='--defaultdeps' cpan -i Some::Module 詳しくは、Module::AutoInstall の ENVIRONMENT の項を参照のこと。 cpan の prerequisites_policy オプション cpan> o conf prerequisites_policy follow cpan> o conf commit
Module::Installを使ったCPANモジュールはincというディレクトリがあって、その中にinc::Module::Installなどのファイルが同梱されています。なぜ、inc::Module::Installなどが含まれているかというと、これによってModule::Installがインストールされていないマシンでも、そのモジュールをインストールできるという利点があります。 Module::Installを使ったモジュールのプロジェクトを作るのは意外と簡単で、module-starterなどでプロジェクトの雛形を作り、以下のような感じでMakefile.PLをModule::Install用に書き換えてやるだけでいいのです(module-starterはテンプレート機能があるので、$HOME/.module-starter/の設定で最初からMakefile.PLをModule::
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く