タグ

perlに関するYudoufuのブックマーク (50)

  • @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 のモジュールインポートまわりの整理
  • CentOS 6.4 に growthforecast を構築するメモ - ようへいの日々精進XP

    はじめに この年の瀬に growthforecast の環境を構築する必要が発生したのでメモ perlbrew を使う try and error で構築したのでちょっと心配(すいません) 参考 GrowthForecas GrowthForecast を CentOS 6.3 にインストールして Supervisor で管理してみた cpanmを使ってみる perlbrewで構築するモダンなPerl環境 memo 準備 sudo yum -y install pkgconfig glib2-devel gettext libxml2-devel pango-devel cairo-devel sudo yum -y groupinstall "Development Tools" sudo yum -y install perl-ExtUtils-MakeMaker growthfore

    CentOS 6.4 に growthforecast を構築するメモ - ようへいの日々精進XP
  • GrowthForecastというグラフ表示ツールで捗る話 - blog.nomadscafe.jp

    追記 2012/06/22 公式ページを作りました。そちらも参考にしてくださいませ GrowthForecast - Lightning fast Graphing / Visualization http://kazeburo.github.com/GrowthForecast/ Kansai.pmのLTでも紹介したんだけど、APIを叩く事でグラフを更新するツールを書きました。話の発端としては「cloudforecastのグラフを外からAPIで更新したい」ということでしたが、cloudforecastではグラフの追加が重い処理になってしまうので、別のプロダクトとしています。 サーバの負荷などのメトリクスを収集し、グラフ化することで、システムに掛かっている負荷を把握し、パフォーマンスに影響がでるまえに対策をうったり、改善の結果を知る事ができますが、同じ事はシステムだけではなく提供しているサ

  • Perlから非公式Google Reader APIにアクセスする - ゆーすけべー日記

    昔からGoogle Readerの非公式APIを使ってみたかったので、 こちらを参考にPerlでアクセスしてみてる。 既読のアイテムのタイトルを表示するだけのスクリプトなら以下のコードになりました。 上記のサイトだとCookieにSIDを設定しろって書いてあるけれど、 「Authorization」ヘッダーに適切な値を入れてアクセスしたらデータが取れた。 use strict; use warnings; use LWP::UserAgent; use XML::Feed; my $email = 'my@emailaddress'; my $password = 'mypassword'; my $ua = LWP::UserAgent->new; my $res = $ua->post( 'https://www.google.com/accounts/ClientLogin', {

    Perlから非公式Google Reader APIにアクセスする - ゆーすけべー日記
  • 全裸で学ぶMVC事始め - ゆーすけべー日記

    一般的なWeb Application Framework(WAF)ではMVCという設計及び実装における概念が取り入れられています。 MVCに従ってつくるのが全てではありませんが、 WAFを使うと共に、一度はMVCを用いたWebアプリの開発経験はしておいた方がよいと思います。 MVCはモデル(Model)、ビュー(View)、コントローラ(Controller)の3つの単語を組み合わせた言葉で、 この3つで概念が成り立っています。 クライアントがWebに対してリクエストをした時に、これら3つがそれぞれ連動して結果を返します。 一般的には以下のような処理経路をたどります。 クライアントがWebサイトにリクエスト コントローラがリクエストの処理を行い、モデルとビューを動かす 必要に応じてモデルを呼び出す 結果のデータをビューに渡す ビューがHTML化などをしたものをクライアントに表示する MV

    全裸で学ぶMVC事始め - ゆーすけべー日記
  • [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

  • リファレンスの使い方をマスターしよう - Perl入門ゼミ

    Perl › here リファレンスとはデータを指し示すものを表現します。C言語のポインタのようなものだと考えると理解しやすいです。 配列のリファレンス 配列のリファレンスについて解説していきます。 配列 配列の作成です。 my @nums = (1, 2, 3); 配列のリファレンスの作成 配列のリファレンスの作成です。リファレンスは「\」記号を使って作成します。 my @nums = (1, 2, 3); my $nums = \@nums; 「リファレンス」とは「指すもの」を意味します。$numsは@numsを指しています。 $nums ---> @nums 無名配列のリファレンスの作成 無名配列のリファレンスの作成です。「[]」は無名配列生成子と呼ばれます。 my $nums = [1, 2, 3]; $numsは、名前を持たない「(1, 2, 3)」という配列を指し示しています。

    リファレンスの使い方をマスターしよう - Perl入門ゼミ
  • AnyEvent::DateTime::Cron - AnyEvent crontab with DateTime::Event::Cron - metacpan.org

    The maintainer of this distribution is looking for someone to take over! If you're interested then please contact them via email. 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 = AnyEv

  • [anyevent] 設定ファイルを SIGHUP で再読み込みする

    インターネット、GoJavaScriptPythonPerl によるプログラミング、ISUCON、Windows、Raspberry Pi など、興味のある事について気まぐれに記事を書いています。 最近は新進気鋭の Web Application Framework: Amon2 にも倣って、設定ファイルはPerlでハッシュリファレンスを返すように書いて、それをdoするようにしていて、シンプルで良いなと思っています。 AE_PerlIsm では、さらにブラックリスト追加などをTwitterへのStreming APIの接続を切らずに対応できるように、以下のようにシグナルにコールバック関数を登録する AE::signal 'HUP', \&callback を使って好きな時点で読み込めるようにしてみました。 この変更により、たとえば無名関数で書いたスパム判定ロジックを体が動作したまま

  • Google Calendar Data API で祝日を取得する - Perl入門ゼミ

    Perl › 日付・時刻 祝日というのは人間が決めたものなので非常に扱いにくいものです。春分、秋分という前年の2月に決まる祝日や、振替休日などもあります。 今回のサンプルではGoogleGoogle Calendar Data APIで提供してくれている日の祝日のデータを取得することにします。 あくまでGoogleが調べた日の休日のデータなので絶対的な信頼性はありません。Googleが間違っていれば間違った祝日のデータを取得しますので、日付の間違いが損害を及ぼすようなアプリケーションにそのまま使用してはいけません。かならず他の手段で正しいことを確かめるようにします。 use strict; use warnings; # Web上から情報を取得するのでHTTPクライアントを使用する。 use LWP::UserAgent; #フィードがXMLで与えられるのでXML::Simpleで解

    Google Calendar Data API で祝日を取得する - Perl入門ゼミ
  • 永続化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

  • 東京の放射線量をIRCに通知するperlスクリプト - Perl勉強メモ アルパカDiary出張版

    今更感がありますが。 最初はこちらの放射線APIを使わせていただこうかと思いましたが 何故か東京がなかったので別ページから。 都内の環境放射線測定結果(東京都新宿区百人町)に最新の放射線量が掲載されているようなので このページをスクレイピングしてIRCに流すようにしました。 以下そのスクリプト。 毎時20分にスクレイピングして更新されてたらIRCに通知します。 来週から会社で使う予定。 ちなみにもう少し広い範囲が欲しければ 文科省のHPにExcel形式で置いてあるので これを使うといいでしょう。

    東京の放射線量をIRCに通知するperlスクリプト - Perl勉強メモ アルパカDiary出張版