タグ

Perlとcpanに関するtrappleのブックマーク (19)

  • なぜモジュールをgithub止まりにするのか | All Your Bugs Are Belong To Ass

    『tl;dr』 http://d.hatena.ne.jp/charsbar/20080606/1212704287 『tl;dr』は甘え ここまで読んで意味がわかった方には、このポエムを読む必要などありません。読むだけ時間の無駄ですので、より創造的な活動に貴重な時間を費やしていただきたい。 え?どういうことw はい、此処から先は、上記の意味が解らなかった方向けにお届けする、自戒風個人的見解というジャンルのポエムです。 CPANにモジュールをリリースするということ 思うに、少なくとも以下のような意味があるはずです。 あなたの作ったモジュールが、cpanm一発でインストールできるようになる。 これはそのままで、単にcpanm Your::Moduleなどのようにすることでインストールできるようになることを指しています。 あなたの業務で当該モジュールを利用していた場合、確かにこれは如何にも便利

  • おそらくはそれさえも平凡な日々: cpanfileのrequiresにURLを直接指定するのは好ましくない

    cpanfileでは、requires "git:..."; のように、gitやtarballのURL等を指定すれば cpanm --installdeps . でモジュールがインストールできる「裏ワザ」があることが 結構知られているようです。しかし、これは好ましくありません。そもそも CPAN::Meta::Spec準拠ではありません。 これはあくまでcpanm側が第1引数にgitやtarballのURLなどを指定すればよしなに インストールしてくれるから現状は「偶然」そういう動きになっているだけです。 (cpanm git:...でインストールできるので、requires "git:..."; って書いてあれば 入れてくれてしまうってことです。) あくまでインストールにcpanmを使った場合に動くってだけの限定的な話で、しかも今後は 動かなくなる可能性が高いです。 実際問題、requi

  • Orepanでローカルミラーを作成・管理する - メメメモモ

    プロジェクトが依存しているモジュールをローカルミラーで管理します。 ローカルミラーはプロジェクトのバージョン管理下に入れます。 こうすることで、依存モジュールのバージョンを固定することができます。 管理ツールインストール ローカルミラーを管理するツールOrePANをインストールします。 $ cpanm OrePAN ローカルミラーを作成する cpanmコマンドを使って、ローカルミラーを作成します。 基は「--save-dists」オプションを使い、ローカルミラーを作成していきます。 以下のようにcpanmコマンドを実行します。 $ cpanm -L local-tmp --save-dists=cpan-mirror Mojolicious バージョンを指定してインストールしたい場合は、「Mojolicious@3.82」というように@をつけて指定します。 $ cpanm -L loca

    Orepanでローカルミラーを作成・管理する - メメメモモ
  • CPAN dependencies and test results checker

    Given a module name, this service will show you its dependencies along with a summary of their test results from the CPAN testers. The idea is that if you have a choice of several modules to use, this will show you which is the most reliable. Search Module Please note: this site is a tool to analyse the dependencies of modules written in the Perl programming language. I can not help you with any p

  • Perlモジュール徹底解説 - Perl入門ゼミ

    Perl › here Perlのモジュールについての解説です。Perlでいうモジュールとは良く使う機能や便利な機能をプログラムで利用するための仕組みです。 Perlの基文法を覚えたらいろいろなモジュールを使ってみましょう。モジュールを組み合わせると複雑な問題を簡単に解決したり、業務の自動化に役立ったりします。 またCPANと呼ばれるモジュールの配布サイトでは役立つたくさんのモジュールが有志によって登録されており無料で利用することができます。cpanコマンドの使い方についてはCPANモジュールの解説を参考にしてください。 モジュールの作成方法 「パッケージ」などのモジュール作成のための基礎知識を知りたい場合は「モジュールの基礎」を参考にしてください。実際にモジュールを自分で作成してみたい方はModule::Starterモジュールを使って、モジュールのひな型を作成するのが早道です。 モジ

    Perlモジュール徹底解説 - Perl入門ゼミ
  • 1.3 Cartonによるアプリケーションの実行環境の構築 : Practical Modern Perl (仮)

    注:稿はまだ書きかけです!書きかけです!まだ一般に知らしめようとする前にブクマされました!w 間違いの指摘やコメント等は lestrrat @twitter にください! 1.3 cartonを使ったアプリケーション実行環境の構築 carton はアプリケーションのCPANモジュール等への依存関係の管理を始めとした環境の管理を行ってくれるツールです。cpanm等を使って自分で環境を手動で整えるに比べると、cartonコマンド内でパス等の面倒を見てくれるのでアプリケーションの管理・実行が格段に楽にできるようになります。 もちろんcartonを必ず使う必要があるわけではありません。あくまで一例としてですが、最も原始的な依存モジュールのバージョン固定方法としては、必要な全てのモジュールをバージョン指定して cpanm -L /path/to/myapp/extlib DBI@1.625 cpa

    1.3 Cartonによるアプリケーションの実行環境の構築 : Practical Modern Perl (仮)
  • 生DBI + SQL::Maker がちょうどいい | ブログが続かないわけ

    PerlDB 今年に入ってからまたPerl を使うことが多くなってきていました。画面を伴うものはだいたいPHP で書いて、そうでないもの、例えばバッチ処理のようなものはPerl で書くことが多いので、バッチを書くことが多くなってきているということです。 PerlDB を扱うときは、少し前まではDBIx::Class を好んで使っていたので、既存の案件のカスタマイズなどではいまも使うことになっています。しかし、新規に何か作ろうと思うと、スキーマを作るのが面倒に思えてなりません。ワンライナーで作れるのですが、それすらも面倒に思えてきてしまいました。 そもそも、簡単な処理しかしないのであれば、DBIlC は大袈裟な気がしてしまいます。DBIx::Skinny なども検討したのですが、そもそもO/Rマッパーが不要なんじゃないかというくらいの小さな規模では、そういうものもあまり使う気になれま

    生DBI + SQL::Maker がちょうどいい | ブログが続かないわけ
  • cpan で古いバージョンのモジュールをインストールする方法 - daily dayflower

    m コマンドでモジュールの情報を調べます。 $ cpan ... snip ... cpan[1]> m DBIx::DBSchema Module id = DBIx::DBSchema DESCRIPTION Database-independent schema objects CPAN_USERID IVAN (Ivan Kohler <ivan-pause@420.am>) CPAN_VERSION 0.33 CPAN_FILE I/IV/IVAN/DBIx-DBSchema-0.33.tar.gz UPLOAD_DATE 2007-06-29 DSLIP_STATUS bmpOp (beta,mailing-list,perl,object-oriented,Standard-Perl) INST_FILE (not installed) 現在のメンテナの PAUSE ID が

    cpan で古いバージョンのモジュールをインストールする方法 - daily dayflower
  • いつでもどこでも、すぐに DateTime モジュールを使いたい - iandeth.

    前回のエントリ 「Perlで日付・時間操作 - DateTime モジュールの使い方」で書いたとおり、とっても便利なDateTimeモジュールですが、強いて難点をあげるとすれば、必要な依存モジュールが多いこと = インストールが面倒くさい事かと個人的には思います。shell と make コマンドが使える環境ならば、"$ perl -MCPAN -e 'install DateTime' " で自動インストールしちゃえるのですが、これができない状況: telnet 禁止の環境で cgi 作りたい場合 (無料ホームページサービス等)(顧客のサーバ環境での開発で、クライアントに信用されていない状況とか) サーバの保守・セキュリティ体制がうんちゃらで make コマンドの利用が規制されている場合 (出くわした経験あり) こんな状況下だと、とたんにDateTimeモジュールを利用する事は難しくなっ

  • hide-k.net#blog: いつでもどこでも、すぐに Class::DBI を使いたい

    仕事でレンタルサーバー上でCGIを書く羽目になったのですが、root権限はおろかシェルも使えない環境なのでCatalystにどっぷりつかっていたボクとしては面倒くさくて気が狂いそうです。 特にDB周り。 DBI直たたきなんて非人間的な作業をやっているとバグつぶしだけで頭がおかしくなりそうです。 で、なんとかClass::DBIだけでも使えないか調べて見ました。 CDBIが依存しているクラスでXSを使っているのはversionとCloneだけです。 それならある程度環境が整っているレンタルサーバーならなんとかなるだろうってことで調べて見ると、都合のいいことにversionは--perl_onlyオプション付きでMakefile.PLすればPure Perlなクラスを作成してくれるし、CloneはClone::PPなるPure PerlなCloneクラスがありました。 で、やってみました。

  • CSVデータをお手軽/高速に扱うモジュール作った。 - spiritlooseのはてなダイアリー

    CSVファイルを処理することがあったので、いつもどおりText::CSV_XSを使おうかなぁと思ったんだけど、最近libcsvっていうのを見かけたので試してみることにした。 というわけでPerlから使いたいので、適当にモジュール作った。 http://search.cpan.org/dist/Text-CSV-LibCSV/ 使い方は use Text::CSV::LibCSV; csv_parse($data, sub { my @cols = @_; # なんか処理 }); こんだけ。楽チン。 こんなスクリプトでベンチとってみたところ、Text::CSV_XSの倍以上速い。 そんなわけで、そこそこ使えるんじゃないかと思います。 libcsv入れるのがちょっとめんどくさいけどね。 なんか作者にチラッと10行ぐらいのメールしといたら5倍ぐらいになって帰ってきてる・・・ バグ報告もたっぷり。

    CSVデータをお手軽/高速に扱うモジュール作った。 - spiritlooseのはてなダイアリー
  • File::Path

    NAME File::Path - Create or remove directory trees VERSION 2.18 - released November 4 2020. SYNOPSIS use File::Path qw(make_path remove_tree); @created = make_path('foo/bar/baz', '/zug/zwang'); @created = make_path('foo/bar/baz', '/zug/zwang', { verbose => 1, mode => 0711, }); make_path('foo/bar/baz', '/zug/zwang', { chmod => 0777, }); $removed_count = remove_tree('foo/bar/baz', '/zug/zwang', { ve

    File::Path
    trapple
    trapple 2007/01/29
    Dir操作
  • hori-uchi.com: Perlモジュールのバージョン確認

    たとえばこのサーバにインストールされているCGI.pmのバージョンを確認したいなんて時は perl -MCGI -e 'print $CGI::VERSION' なんてコマンドを打ってやれば確認できますが、これをいちいち打つのはめんどくさいので、簡単なスクリプトを書いてみました。 #!/usr/bin/env perl use strict; use File::Basename; use Getopt::Std; getopts('v', \my %opt); die "Usage: ". basename $0. "[-v] [ ...]\n" if @ARGV == 0; no strict 'refs'; for (@ARGV) { (my $path = $_) =~ s{::}{/}; eval {require "$path.pm"}; if ( $@ ) { print

    trapple
    trapple 2007/01/18
    こりゃいい
  • HTML::Strip

  • Encode::Guess -- データからエンコーディングを推測する

    NAME SYNOPSIS ABSTRACT DESCRIPTION CAVEATS TO DO SEE ALSO NAME Encode::Guess -- データからエンコーディングを推測する SYNOPSIS # if you are sure $data won't contain anything bogus use Encode; use Encode::Guess qw/euc-jp shiftjis 7bit-jis/; my $utf8 = decode("Guess", $data); my $data = encode("Guess", $utf8); # これはうまくいかない! # もっと念入りなやり方 use Encode::Guess; my $enc = guess_encoding($data, qw/euc-jp shiftjis 7bit-jis/);

    trapple
    trapple 2006/05/19
    use Encode::Guess qw/euc-jp shiftjis 7bit-jis/;
  • List::Util

    NAME List::Util - A selection of general-utility list subroutines SYNOPSIS use List::Util qw( reduce any all none notall first reductions max maxstr min minstr product sum sum0 pairs unpairs pairkeys pairvalues pairfirst pairgrep pairmap shuffle uniq uniqint uniqnum uniqstr head tail zip mesh ); DESCRIPTION List::Util contains a selection of subroutines that people have expressed would be nice to

    List::Util
  • HTML::TagCloud

    NAME HTML::TagCloud - Generate An HTML Tag Cloud SYNOPSIS # A cloud with tags that link to other web pages. my $cloud = HTML::TagCloud->new; $cloud->add($tag1, $url1, $count1); $cloud->add($tag2, $url2, $count2); $cloud->add($tag3, $url3, $count3); my $html = $cloud->html_and_css(50); # A cloud with tags that do not link to other web pages. my $cloud = HTML::TagCloud->new; $cloud->add_static($tag1

    HTML::TagCloud
  • cgiapp

    cgiapp Thread Date Advanced search cgiapp List Id: CGI Application <cgiapp.lists.erlbaum.net> List Help: mailto:cgiapp-request@lists.erlbaum.net?subject=help List Subscribe: http://www.erlbaum.net/mailman/listinfo/cgiapp, mailto:cgiapp-request@lists.erlbaum.net?subject=subscribe Posting Address: mailto:cgiapp@lists.erlbaum.net List Owner: - RSS Feed: maillist.xml Alternate Archive: http://www.erlb

    trapple
    trapple 2005/12/17
    CGI::Applicationのメーリングリストのアーカイブ
  • FormValidator::Simple

    NAME FormValidator::Simple - validation with simple chains of constraints SYNOPSIS my $query = CGI->new; $query->param( param1 => 'ABCD' ); $query->param( param2 => 12345 ); $query->param( mail1 => 'lyo.kato@gmail.com' ); $query->param( mail2 => 'lyo.kato@gmail.com' ); $query->param( year => 2005 ); $query->param( month => 11 ); $query->param( day => 27 ); my $result = FormValidator::Simple->check

    FormValidator::Simple
  • 1