タグ

tipsとperlに関するtykiのブックマーク (14)

  • さくらインターネットで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 --

    tyki
    tyki 2007/11/12
  • iandeth. - Perl の use と require の違い

    以前飲み会で、会社の先輩と「use と require の違いってなんじゃ?」てな話をした際、知識不足ゆえうまく答えが出せなかったのですが、Programming Perl 等をちょろちょろ読み始めた今なら、ちょっとはマシな回答が出来る気がした /w のでまとめてみました。 perldoc を始め、色々なサイトや書籍でも既に述べられているとおり、 use はコンパイル時に評価される - module load happens at comile time. require は実行時に評価される - module load happens at run time. が明確な違いになります。また、 perldoc(*) によると use は実際には以下のコードを実行するのと同等だそうです : BEGIN { require MODULE; MODULE->import(LIST); } 特殊ブ

    tyki
    tyki 2007/07/09
  • Yet Another Hackadelic - Devel::DProfを使って簡単にプログラムの流れをつかむ

    Devel::DProfを使うと簡単にプログラムの流れを把握出来ます。*1 例えばinc::Module::Installの初期化処理ってどんなんだろうと思ったら、 $ perl -d:DProf -Minc::Module::Install -e 'use inc::Module::Install'ってやるとそのディレクトリにtmon.outってファイルが出来てます。 tmon.outを直接見ても良いのですが、きちんとこのprofileデータをparseするコマンドが付属しています。それがdprofppコマンドです。 下記のような使い方をすると流れがつかめていい感じかもです。 $ dprofpp -T | grep Module::Install | uniq inc::Module::Install::BEGIN Module::Install::BEGIN Module::Insta

    Yet Another Hackadelic - Devel::DProfを使って簡単にプログラムの流れをつかむ
    tyki
    tyki 2007/04/11
  • どのクラスで定義されたメソッドなのか : にぽたん研究所

    Perl のはなし。 弊社のあるエンジニアが、とあるクラスを継承している他のクラスで呼出可能なとあるメソッドについて、そのメソッドがそのクラス内に定義されていないので、んじゃどこで定義されてるのか?というのを調べるのに時間がかかってた模様。 そんなの @ISA 配列を再帰的に見て、シンボルテーブル + UNVERSAL::isa() の組み合わせで発見出来るだろうなーと思ったので、簡単なテストを書いたら、アッサリ発見出来た。 こういうモジュール欲しい!という人も多いんじゃないかと思ったので、どうせなら CPAN にうpしようかなと思いつつ、reinvent the 車輪なんじゃないかな?とかも思いはじめ、某 CPAN Author だらけの IRC チャンネルで識者の意見を賜ってみた。 「このモジュールで出来るよ!」 という話がなかったので、んじゃ、ちゃんとしたのを作って contribu

    どのクラスで定義されたメソッドなのか : にぽたん研究所
    tyki
    tyki 2007/02/20
  • PerlとRubyでのロードできるライブラリを確認する方法 - Bouldering & Com.

    「あれー、あのライブラリ使いたいけど、このサーバってどんなライブラリが入ってたっけー?」という状況によくなるので備忘。 Perl find `perl -e 'print join(" ", @INC)'` -type f -name "*.pm" Sorryに書いてあるののままです。 Ruby find `ruby -e 'print $LOAD_PATH.join(" ")'` -type f -name "*.rb" テキトーにググって、[ruby-list:40643] Re: ライブラリのパス?を確認する方法と、設定する方法がわかりません。のをそのまま使わせてもらいました。 ロードするパスが@INCに入ってるか、$LOAD_PATHに入っているかの違いしかないですね。

    PerlとRubyでのロードできるライブラリを確認する方法 - Bouldering & Com.
  • いやなブログ - スクリプト言語用のデバッガの使い方 - Ruby, Python, Perl

    スクリプト言語用のデバッガの使い方 - Ruby, Python, Perl スクリプト言語用の CUIのデバッガの使い方を簡単にまとめました。対象言語は Ruby, Python, Perl です。 私は C, C++ でプログラムを書いているときはデバッガ (主に GNU/Linux 上の gdb) を頻繁に利用します。しかし、スクリプト言語ではそれほどでもありません。これはおそらく次のような理由によります。 ビルドが不要なので printf デバッグが容易 (ある程度大きい C++ のプログラムではビルド時間が長いので printf の挿入はしんどい) 異常終了時にスタックトレースが表示される (Ruby, Python なら自動、Perl の場合は use Carp; $SIG{__DIE__} = \&Carp::confess; など) オブジェクトのインスペクトが簡単 (Ru

  • IP アドレスから国コードを検索

    ご無沙汰しています。 自宅サーバの HDD が異音と共にぶっ壊れてしまい、10 分で作る Sledge アプリの動画とかのサルベージが出来ず、すっかり意気消沈の今日この頃、皆様いかがお過ごしですか。 なんか先日、「誰が攻撃しているか突き止めたい」というネタがホッテントリになってて、それに合わせてIPひろばというサイトもホッテントリになってました。 空前の逆探知ブームなのでしょうか。 変なカップヌードルのべかたをする半袖さんが、それを追うように、DNSBLスタイルのクエリーを利用してIPアドレスから国コードを検索というネタを書いていますが、IP アドレスを元に国コードを調べるコマンドラインには、こんな方法もあります。 Geography::Countries と、IP::Country という CPAN モジュールを入れると、ip2cc というコマンドラインツールもインストールされます。

    IP アドレスから国コードを検索
    tyki
    tyki 2007/01/17
  • CPAN::Mini で CPAN のミラーをローカルに: blog.bulknews.net

    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 で同期で

  • 404 Blog Not Found:perl - no warnings 'unintialized'

    2006年09月08日05:00 カテゴリLightweight Languages perl - no warnings 'unintialized' はてぶ経由でCharsbarさんからも指摘あり。 [を] not defined とヒアドキュメント 昔はそうやっていたのですが、「use warnings」を使い始めたら、 警告 ("Use of uninitialized value ...") が出るようになったので、 いつも入れているのです…。これまたPerlの世界ではTMTOWTDIな対策があるのだけど、いい機会なのでここでその対策をまとめておきます。 no warnings 'uninitialized'; これが一番基的な対策になります。Scope単位で有効なpragmaなので、 use warnings; sub foo{ no warnings 'uninitiali

    404 Blog Not Found:perl - no warnings 'unintialized'
    tyki
    tyki 2006/09/08
  • Perlで作るモバイルサイトのコツ:第2回:CodeZine

    はじめに 若い世代の女性を中心にデコメールが注目されています。 デコメールとはNTTドコモのFOMA900iシリーズから導入された簡易HTMLメール機能で、HTMLメールならではの文字修飾、画像の埋め込みなどが可能です。これらの機能を使えば、ただのテキストのメールよりも個性的でかわいいメールを送ることができるので、それが人気につながっているようです。 デコメールの仕様は下記で公開されています。NTTドコモ 『作ろうiモードコンテンツ:デコメール』  稿ではCPANモジュールのMIME::Liteを使ったサンプルを用いて、デコメールの基的な仕様について解説します。 ※CPANについては、第1回を参照してください。対象読者PerlCGIアプリケーションを作成したことのある方。CPANモジュールを使用したことのある方。携帯サイトでデコメールを配信しようとされている方。 必要な環境 Perl

    tyki
    tyki 2006/09/06
    Perlからデコメールを送るには。
  • lighttpd + FastCGI 上で MT3.2 を動作させる方法

    「Drk7.jp を lighttpd へ完全移行」に書いたとおり、当サイトは lighttpd で運用しているのですが、lighttpd は mod_perl ではなく、FastCGI でスクリプトの高速化をしなくてはなりません。 以前は MovableType を Apache + mod_perl で動作させていましたが、lighttpd では FastCGI で動作させるためにいろいろと小細工が必要でメンドウって事で普通の CGI として動作させていましたが、最近になって管理画面や検索のモッサリ感が耐えきれなくなってきて lighttpd + FastCGI + MT3.2 をやってみました。 もともと MT は FastCGI を前提とした作りにはなっていないので、ディスパッテャーを作成してやる必要があります。mod_perl + MT に比べて極端に情報が少ないのですが、ネット

    tyki
    tyki 2006/08/22
  • Perlの迷信

    迷信というか勘違いなのか、PerlのVersionがあがって最適化されたのか。Perl 5.8にて確認。 foreach(0..n) vs for(my $i=0; $i<n+1; $i++) 前者は (0..n) の配列が作られるのでその分遅くなるだろうと思っていました。後述しますが、keys(%HASH) は配列生成が発生するので必ずしも効率がよくないという話を読んだりもしていたので。ところが実際に計測してみると…… use strict; use Benchmark; my %test; my $count = 10000; $test{test1} = sub { my $x; foreach(my $i=0; $i<100; $i++) { $x+=$i; } }; $test{test2} = sub { my $x; foreach(0..99) { $x+=$_; } };

    Perlの迷信
    tyki
    tyki 2006/08/22
    配列生成における実行速度の比較
  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
    tyki
    tyki 2006/08/07
  • プログラミングと開発者のためのCodeZine:Perlで作るモバイルサイトのコツ:第1回(Perl, モバイル, CPAN)

    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

    tyki
    tyki 2006/08/02
  • 1