タグ

moduleとperlに関するYudoufuのブックマーク (12)

  • @INC にみる Perl のやりかたがいっぱい - Articles Advent Calendar 2010 Casual

    こんにちは。最近は PHP ばっかり書いている、永遠の Perl 初心者 hatyuki です。 とつぜん質問ですが、みなさんが最も多くみている Perl のエラーはなんですか? 自分の場合は、う〜ん。。。 Can't locate Hoge.pm in @INC (@INC contains: ~~~~ .). BEGIN failed--compilation aborted. かな?いつまでも進歩がないのが伺えますね! 皆さんご存知の通り、このエラーは "@INC" で指定されたディレクトリの中にモジュールが見つからなかった場合に発生するエラーです。つまり、モジュールをインストールし忘れているか、モジュールがどこに置いてあるのかを適切に設定していないか、の (およそ) どちらかですね。 さてさて、Casual Perler な皆さんは、このエラーを回避するためにどんな方法を使って @

    @INC にみる Perl のやりかたがいっぱい - Articles Advent Calendar 2010 Casual
    Yudoufu
    Yudoufu 2016/02/29
    @INCとかlibとか自作モジュール読み込みとか
  • package - パッケージの宣言 - Perl入門ゼミ

    Perl › 構文 › here 他の言語では名前空間と呼ばれている機能はPerlではパッケージと呼ばれます(※1)。名前空間とは実際の世界の住所のようなものです。日に「田中達也」さんは何人かいると思いますが、「東京都新宿区3-○-△」の「田中達也」さんはひとりしかいません。住所を指定すればどの田中達也なのかを決定することができます。実際の世界の住所にあたるものが名前空間です。 パッケージの宣言 パッケージを宣言するにはpackageを使用します。 # パッケージの宣言 package パッケージ名; パッケージ名には裸の文字列を指定します。クォートやダブルクォートで囲った文字列を渡すことはできません。 # 裸の文字列で指定 package SomeModule; パッケージ名は複数階層にすることができます。「::」で個々のパーツを連結します。 # 複数階層のパッケージ名 package

    package - パッケージの宣言 - Perl入門ゼミ
    Yudoufu
    Yudoufu 2016/02/29
    名前空間とディレクトリ構成とか
  • perl の import の働き

    use と require と import の関係 perldoc perlmodによると、use というのは次と等価と書かれています。 use Module; use Module LIST; はそれぞれ、 BEGIN { require Module; import Module; } BEGIN { require Module; import Module LIST; } と等価になります。 BEGINとは? BEGIN というのは、perl がそのソースファイルをロード中、発見次第最初に1回だけ実行する構文であるという意味です。少しフォローしておくと、モジュールのロードは、@INCにあるパスを順番に見てロードされますが、lib/ 以下に自作モジュールがあるとき、 push(@INC, './lib'); use Module; はエラーとなります。先に use (BEGIN内構

    perl の import の働き
    Yudoufu
    Yudoufu 2016/02/29
    use / require // importと libのわかりやすい説明
  • Perl 関数の Export/Import - weblog of key_amb

    Perl の標準モジュール Exporter を使った関数の Export/Import のやり方をまとめておく。 この機能を使って関数をインポートすると、"MyApp::afunc" のようにパッケージ名を指定せずとも関数を組み込み関数のように "afunc" だけで呼び出せる。 基的な使い方 Export する側は下のように書く。 package MyApp; use Exporter; our @ISA = qw(Exporter); our @EXPORT = qw(afunc bfunc); our @EXPORT_OK = qw(cfunc dfunc); sub afunc { : Import する側は次のように書く。 # 1) デフォルトでは @EXPORT の関数がすべてインポートされる use MyApp; # 2) @EXPORT_OK の関数を明示的にインポート

    Perl 関数の Export/Import - weblog of key_amb
  • perl のモジュールインポートまわりの整理

    use と require のちがい perldoc -f use より、 It is exactly equivalent to BEGIN { require Module; Module->import( LIST ); } とのこと。 BEGIN ブロックの中で require しているので、つまりコンパイル時に評価されるということ。コード中のどこで use してもコンパイル時に読み込み処理が行われる。逆に conditional にモジュールを読み込みたい場合は require を使う。 requrie と同時に import も行う。Exporter の import メソッドを想定していて、Exporter によってエクスポートされた関数を呼び出し側の名前空間に import する。import 関数は別に予約語でもないし、特別扱いもされていない。モジュールがたまたま (Ex

    perl のモジュールインポートまわりの整理
  • [Perl]Regexp::Assemble を使って連想配列のキーに正規表現を使う | ブログが続かないわけ

    連想配列のキーに正規表現を使いたくなることってあるじゃない。 my @strings = qw/ カナダ インド イギリス ニッポン ルーマニア チュウゴク イタリア スペイン ウクライナ アルゼンチン アメリカ /;こんな配列があるとする。これをア行、カ行...などにグループ分けして、例えば次のような出力を得たい場合を例にしてみよう。 カ行: カナダ ア行: インド ア行: イギリス ナ行: ニッポン ラ行: ルーマニア タ行: チュウゴク ア行: イタリア サ行: スペイン ア行: ウクライナ ア行: アルゼンチン ア行: アメリカ 一番すぐ思いつきそうなのが次のコードかもしれない。 for my $str (@strings) { print &grouping($str), ": $str¥n"; } sub grouping { return 'ア行' if(m/^[ア-オ]/)

    [Perl]Regexp::Assemble を使って連想配列のキーに正規表現を使う | ブログが続かないわけ
  • livedoor Techブログ : IRC がゆく

    開発部 _ です。 みなさんは IRC を使っていますか? もしくは使ったことがありますか? ネット上の個人コミュニケーション手段が msn・Yahoo!・Skype などのメッセンジャーが一般的になって久しい昨今、IRC は一部のマニアが使うニッチで古臭い手段という見方も多いようです。 そんな中 livedoor では、日々の運用作業に始まり、開発中のコンテンツ進捗、技術的な意見交換、バグ報告、ランチどこいく?、麻雀やりますよ、今夜のおかずに到るまで日常的に活用されています。 IRC で使われているツールに IRC bot(IRCボット:以下 ボット)と呼ばれる小さなプログラムがあります。 ユーザーの発言に反応したり、定期的に何かを発信したり、嫌なアイツにナニしてくれたり、と作り手の発想次第でいろいろな処理をさせることが出来ます。 時に悪用(ボットネットなど)されるなどネガティヴな印象を

  • AnyEvent::IRCを試す - kotaroito's notes

    IRCでbot動かすために使えるモジュールをざっと調べてみたところ、Net::IRC, Bot::BasicBot, POE::Component::IRC, AnyEvent::IRC::Clientあたりが使えそう。 時代はAnyEventってことで、AnyEvent::IRC::Clientを使ってnickname++したら、その数を覚えておいてIRCにPOSTしてくれるスクリプトを書いてみました(++, --の機能はKarmaっていうらしい) use AnyEvent; use AnyEvent::IRC::Client; my %karma; my $cv = AnyEvent->condvar; my $irc = AnyEvent::IRC::Client->new; $irc->reg_cb( connect => sub { my ($irc, $err) = @_; i

    AnyEvent::IRCを試す - kotaroito's notes
  • ごりゅご.com

    ごりゅご.com

  • AnyEvent::DateTime::Cron

    NAME AnyEvent::DateTime::Cron - AnyEvent crontab with DateTime::Event::Cron VERSION version 0.08 SYNOPSIS AnyEvent::DateTime::Cron->new() ->add( '* * * * *' => sub { warn "Every minute"}, '*/2 * * * *' => sub { warn "Every second minute"}, ) ->start ->recv $cron = AnyEvent::DateTime::Cron->new(); $cron->debug(1)->add( '* * * * *', name => 'job_name', single => 1, sub {'foo'}, ... ); $cron->delete(

    AnyEvent::DateTime::Cron
  • 永続化Perlでモジュールの再読み込み ⇒ Module::Refresh - daily dayflower

    mod_perl や PersistentPerl (a.k.a. SpeedyCGI) など Perl インタプリタを永続化させる仕組みのものは*1,一度読み込まれたモジュールは,その後ファイルが変更されたとしても自動的に再読み込みしてくれたりはしません。mod_perl では Apache(2)::Reload というモジュールがあり,そのような場合でもうまくとりはからってくれます。 で,かつて PersistentPerl でも同じようなことができないかと思って苦闘したことがあるのですが(SpeedyCGI と module reload - daily dayflower),最近ふと CPAN を漁っていて Module::Refresh なるものがあることを発見しました。Jesse プロダクトです。 This module is a generalization of the f

    永続化Perlでモジュールの再読み込み ⇒ Module::Refresh - daily dayflower
  • overlasting.net

  • 1