タグ

Perlに関するfn7のブックマーク (74)

  • Reactive Programmingの波がPerlにもやってきた? – Wyton

    どーも、わいとんです。 遅まきながら、新年おめでとうございます。 さて。近頃、個人的に気になっているCPANモジュールの一つにMoobXというものがあります。 今回は実際にMoobXを使って、PerlでのReactive Programmingを試してみましたので、ご紹介したいと思います。 MoobXについて MoobXはReactive programming frameworkを標榜しており、JavascriptのMobXにインスパイアされたものであるようです。 エントリ執筆時点での最新バージョンは0.1.0ですが、作者のYanick Champoux氏によって精力的に開発が継続されており、現在も3つのissueがopenとなっています。 なお、最初のリリースである0.0.1が今年の1/13にリリースされたばかりであり、0.1.0のリリース日も1/14であることから、今後まだまだ仕様

    fn7
    fn7 2017/02/09
    まじか!
  • Email::MIME::MobileJPで文字コードまわりに気をつかわないでメールの送受信をおこなう - Articles Advent Calendar 2010 Hacker

    メール関係のモジュールをとりまとめて、カジュアルにつかえるようにするためのモジュールをかいてみました。 メールの受信(Parsing) メールのパーズは、以下のように、メールの文字列をくわせてやればいいです。 use Email::MIME::MobileJP::Parser; my $src_text = do { local $/; <> }; my $mail = Email::MIME::MobileJP::Parser->new($src_text); メールオブジェクトから Subject をえるには以下のようにしましょう。 ここでとれるものは MIME ヘッダにはいっている情報をもとに、UTF-8 に decode された文字列です。 可能ならば絵文字も decode します。これには [Encode::JP::Mobile](http://search.cpan.org/p

    Email::MIME::MobileJPで文字コードまわりに気をつかわないでメールの送受信をおこなう - Articles Advent Calendar 2010 Hacker
  • インデックスを使った指定行取り出しプログラム(Pure Perl)

    インデックスを使った指定行取り出しプログラム(Pure Perl) 2010-08-10-1 [Programming][Algorithm] テキストファイルから指定した行を取り出すタスクについて。 頭から走査する方法 まずはファイルの頭から走査していくナイーブな方法。 ■コード(getline-naive.pl): #!/usr/bin/perl use strict; use warnings; my $qidx = shift @ARGV; # start from 0 my $tgtfn = shift @ARGV; open(my $fh, "<", $tgtfn) or die; while (<$fh>) { next if $. != $qidx + 1; print; last; } close $fh; 先頭行は0行目になる仕様。 ■実行例: % cat test.d

    インデックスを使った指定行取り出しプログラム(Pure Perl)
  • Perl 5.13.2 がもたらした package NAMESPACE BLOCK 構文があたえるもの - tokuhirom's blog

    開発版の Perl 5.13.2 がリリースされたが、5.13.2 の目玉はなんといっても package NAMESPACE BLOCK 構文だろう。 use 5.13.2; use warnings; package Point { use Moose; has 'x' => (is => 'rw', isa => 'Int'); has 'y' => (is => 'rw', isa => 'Int'); __PACKAGE__->meta->make_immutable; no Moose; }; のように、パッケージを宣言することができるようになった。 この構文は非常に大きい変化をもたらす。 1 ファイルに複数のクラスを書くことが苦でなくなる。package NAME BOCK 構文を利用する場合、BLOCK の中はインデントすることになるため、複数パッケージを1つのファイルにか

    fn7
    fn7 2010/06/24
    Perlの変態的な書き方が一つ減った
  • Kansai.pm 10周年記念 Plack/PSGI 入門

    The document discusses various web application frameworks and deployment methods in Perl. It covers common frameworks like CGI, mod_perl, Catalyst, and PSGI. It then discusses running PSGI applications with plackup, configuring middleware, and deploying PSGI apps behind web servers or as standalone daemons. Finally, it briefly covers application deployment and management with tools like daemontool

    Kansai.pm 10周年記念 Plack/PSGI 入門
  • Perl 5は生き返った! 新たな前進を再開したPerl

    Perl 5コアの開発はここ数年、負の連鎖が続いていた。リリースは滞り、開発者は去り、将来の見通しはどんどん悪くなっていった。ここで話すのは、Perl 5の開発におけるこの悪い流れがどのようにして、楽しく、前向きで、エキサイティングなものに変わったか、というストーリーだ」 Perl 5のコアデベロッパーで、ActiveStateの技術リードでもあるJan Dubois氏は、4月13日に同社のブログにポストしたエントリ「Perl 5 is Alive」で、このように書き出しています。 Perlは、機能が高度化し複雑になったPerl 5までのバージョンを見直し、新たに作り直そうと、2000年にPerl 6の開発が始まりました。しかしPerl 6は10年たったいまでもリリースされておらず(今月に最初のバージョンがリリースされるといわれていましたが…)、一方でPerl 6の開発が始まってからは、

    Perl 5は生き返った! 新たな前進を再開したPerl
  • local::lib を切り替える - unknownplace.org

    レガシーなアプリをメンテするのにレガシーな Perl モジュールが必要になることがあり、そのために古いアプリ用には専用の local::lib ディレクトリを切っているわけですが、普段から日常的に local::lib を使用しているため shell が上がったタイミングではデフォルトの local::lib 環境変数がセットされていて切り替えが非常に面倒だった。 これまではそれほど頻繁に使用しなかったので放置していたのだが、ここのところ頻繁に必要になるためいい加減うざくなってきて簡単に local::lib を切り替えられるよう設定をしてみた。 zsh に次のような関数をつくり、それで local::lib を切り替えるようにする。 function locallib () { INSTALL_BASE=$1 if [ -d $INSTALL_BASE ]; then eval $(~/

  • #perl bytes.pmがdeprecatedになった件

    Perl 5.12からbytesプラグマがdeprecatedになるようですが,それについての議論をまとめてみました。

    #perl bytes.pmがdeprecatedになった件
    fn7
    fn7 2010/02/23
    Scalar::Util::sv_len($sv) is good enough ならしい。
  • LL脳な人でもこれぐらいは覚えておくとうれしいgdbのつかいかた。または猫でもわかるgdb講座 - tokuhirom's blog

    LLつかってても「ばすえらーになるー」っていう状況ってたまにあるわけですが、LL しか普段つかわないゆとりは、ここでお手あげになってしまったりすることがままあります。 で、「ばすえらーになるんですが」ってときの最低限これだけはやってみたらどうか、という話。「えー、わたし gdb とかわかんないしー」とかいってる人でもこれぐらいならできるんじゃないかなーっと。 perl t/00_load.tというコマンドで segv するという場合、gdb をつかって % gdb --args perl t/00_load.tとうつ。 すると、以下のようにプロンプトがでるので、"run" とうつ。これでスクリプトがはしりはじめる。 % gdb --args perl t/00_load.t GNU gdb (GDB) 7.0-ubuntu Copyright (C) 2009 Free Software

  • 正規表現基礎文法最速マスター With Perl - 小池啓仁 ヒロヒト応援ブログ By はてな

    Perlでの正規表現のサンプルと文法一覧です。 他の言語をある程度知っている人はこれを読めば正規表現の基礎をマスターして正規表現を書くことができるようになっています。 簡易リファレンスとしても少し利用できると思います。 他言語からの人は、正規表現を使う機会がなかったかもしれませんが・・・。 Perlでは、正規表現を使うための言語と言っても過言ではありません。 正規表現を使うことによりテキスト(文字列)編集処理が飛躍的に楽になるのです。 では、まずはじめにテストデータ、family.txt を用意します。 このテストデータを元にしてサンプルプログラムを踏まえて解説をしていきますね。 ・family.txtファイルの内容 macha koike yachu koike chaichan koike hiro koike mama koike papa koike koike 6 ni-bo-

    正規表現基礎文法最速マスター With Perl - 小池啓仁 ヒロヒト応援ブログ By はてな
  • XS基礎文法最速マスター - Islands in the byte stream (legacy)

    元ネタ:Perl基礎文法最速マスター(id:perlcodesample) XSを始めるための手順といくつかの要素の解説です。C言語をある程度知っている人でも,これを読んだだけでXSの基礎をマスターしてXSを書くことができるようにはなっていません。リファレンスでもありません。 XSとは,狭義ではPerlでエクステンションを書くためのマクロ言語の名前ですが,広義ではエクステンションを書くための技術の総称です。ここでは,広義のXSを俯瞰します。 XSはいろいろと特殊なのでテンプレは無視で行きます。 目次: h2xsで空のディストリビューションを作る XSファイルの構成 スレッドコンテキスト SVファミリ GCとスコープ さらなる学習のために h2xsで空のディストリビューションを作る 以下のコマンドで空のXSディストリビューションを作ることができます。 h2xs -A -b 5.8.1 -n

    XS基礎文法最速マスター - Islands in the byte stream (legacy)
  • オススメCPANモジュールその1。 AnyEvent - TokuLog 改めB日記

    というわけで、俺の独断と偏見によるオススメモジュールのコーナーです。 AnyEvent は poll/select/kqueue/epoll(4) などのイベントループを抽象化するライブラリです。似たような目的のものとして Danga::Socket, POE などがありますが、ライブラリ全体のインターフェースの完成度や速度などの点から AnyEvent を僕は一番押しています。 Pure Perl で利用できますし、インターフェースも安定しています。まだバリバリ開発されてますが、backward incompat な変更はされないようです。 作者が mlehmann 氏ということで、ドキュメントは丁寧ですが攻撃的な文章が目立ちますし、バグレポートすると異常な長文がかえってきたりするのでうっとーしかったりしますが、コードの品質はたかいので、気にする必要はないかとおもいます。コードの品質の前

  • 第1回 松野徳大氏 株式会社モバイルファクトリーインタビューEngineer 25

    第1回 松野徳大氏 株式会社モバイルファクトリー 今回は、株式会社モバイルファクトリーのエンジニアである、松野徳大(23歳)さんにお話を伺いました。 松野さんは、モバイルファクトリー社でモバイル系のサービス開発を手がける傍ら、「YAPC::Asia」「Shibuya.pm」など、Perl系のコミュニティでも積極的に活躍されています。 また、RailsによるWikiである「Inamode6」や携帯からIRCのログを見たり発言するためのサーバー「mobirc」なども生み出したことでも知られ、23歳にして天才プログラマとして広く知られています。 取材は五反田のモバイルファクトリー社の会議室で行い、松野さんの直接のご上司である木村岳文さんと広報担当である下村友香さんにもご同席をいただいております。※取材日は、2008年1月です。所属や役職などは当時のまま掲載しております。 柴田さんとのご関係は?

  • Use -w in applications, use warnings in modules - Islands in the byte stream (legacy)

    警告のためには -w ではなく use warnings を使うべき,という意見がある*1。 perl - use warnings; # -w でなくて - 404 Blog Not Found 現代的なPerlの記述方法一覧 + α - Perl入門〜サンプルコードによるPerl入門〜 しかしそれはある意味では正解だが,ある意味では間違いである。正しくは「アプリケーションでは #!行に-wと書き,モジュールではuse warningsを使う」である。 以下のコードではそれを示す。 (1) $ perl -MFile::Spec -E 'say File::Spec->join("foo", undef)' foo/ $ (2) $ perl -MFile::Spec -wE 'say File::Spec->join("foo", undef)' Use of uninitialize

    Use -w in applications, use warnings in modules - Islands in the byte stream (legacy)
  • YAPC::Asia2009の特別研修「Moose入門、モダーンなオブジェクト指向システム」が超良かった! - こんにちはこんにちはmonmonです!

    Shawn Moore(Sartak)の講義でした。同時通訳。 感想。 超楽しかった!!sartakがとてもいい人だった!ちょっとした質問でもコード書きながら教えてくれた。 もっとみんな受けたらいいのに!もう終わっちゃったけど! 機能毎に、講義→実習→講義→実習、の繰り返し。 これがとても楽しかった。 1日最後まで楽しくコード書いて過ごせた。 実習の内容も、既にあるテストが通るようにモジュールを作成してテストが通ったら「やったー!」みたいな。 gitに資料があるのでみんな落としてやったらいいよ!ccのライセンスで公開してるので。 きっとtestファイル自体もキレイに書いてあるはずだから見たらいいと思うよ JPAにすごい感謝でした。3日間全部受けておけば良かったと思った。 以下メモ。 Part0: Mooseのコンセプト perl6からいろんなアイディアをもらってる まずはざっくりMoose

    YAPC::Asia2009の特別研修「Moose入門、モダーンなオブジェクト指向システム」が超良かった! - こんにちはこんにちはmonmonです!
  • Moose::Manual Moose(0.79) - Japan Perl Association ドキュメント和訳プロジェクト

    Mooseは、Perl 5のために書かれた「完全な」オブジェクトシステムです。現代的なオブジェクト指向言語をなにかひとつ思い浮かべてみてください(Perl 5は決して現代的なオブジェクト指向言語ではありません)。アトリビュートを宣言したり、オブジェクトを構築したり、継承を行ったり、あるいはもっといろいろできるかもしれませんが、そのような作業のためのキーワードが用意されていますし、その実装がどうなっているかなんてだれも気にとめません。 Mooseが目指すところも同じです。当に新しいキーワードを作ることはできませんが、Mooseはそれとよく似た「シュガー」を提供していますし、なにより、Mooseを使うと「クラスを宣言的に定義できる」ようになります。ブレスされたハッシュリファレンスやアクセサメソッドなどはもう気にしなくてもよくなるのです。 また、Mooseを使えばクラスの「論理的な」構造だけを

  • Big Sky :: 訳:Installing Perl modules without root access

    by Jon Allen (JJ) - posted on Wednesday, 26 August 2009 ここ2、3年にわたって、Perlでの開発はCatalystやDBIx::Class、Moose等のエキサイティングな新技術により変わってました。 しかしながら、これらや他のツールに共通して言える事が1つあります - それらはこれらがPerl体の配布物ではなくCPANの一部という事です。共有ホスティングサーバなど信頼されている環境においては、ユーザはルート権限なしでCPANモジュールをシステムにインストールする事が難しいでしょう。 ただ幸い、単純解があります - それが local::lib です。 local::lib の紹介 local::lib は CPAN ディストリビューションをホームディレクトリににインストールできる様にあらゆる設定を行うPerlモジュールです。これは

    Big Sky :: 訳:Installing Perl modules without root access
  • XML::LibXMLでHTML文書を扱う - 徒書

    XML::LibXML大好きな者が以下述べてみます。 しかし、XML::Liberalを除けば、XML::*なモジュールはX抜きのHTMLってくれない.... と、404 Blog Not Found:perl - HTMLをXMLとして扱うで書かれていたのですが、XML::LibXML、というかその基となるCライブラリlibxml2はHTMLパーサも備えているので、直にHTMLを扱うこともできます。 ただ元がXMLパーサなだけに、少しでもHTML文書に壊れた部分があると解析エラーを起こして停止してしまいますが、幸いなことにそのエラーから回復するモードも備えています。以下サンプルを。 use strict; use warnings; use XML::LibXML; my $parser = XML::LibXML->new(); $parser->recover_silently(

  • OpenID OAuth Extension について今北産業に答える - 知らないけどきっとそう。

    OpenIDの拡張で OAuthの認可済みのrequest tokenを もらう リクエストに含める内容は namespaceは http://specs.openid.net/extensions/oauth/1.0 事前に登録済みのconsumer key 認可を得ようとしているscope そうするとrequest tokenが返ってくるのでaccess tokenと交換します 通常のOAuthのフローだとここでrequest token secretが必要ですが、空文字列でOKです ただそれだけ、あとは普通のOAuthと同じ perlでいうと extensionを設定して認証要求 my $openid_csr = Net::OpenID::Consumer->new(...); my $cident = $openid_csr->claimed_identity('http://ww

    OpenID OAuth Extension について今北産業に答える - 知らないけどきっとそう。
    fn7
    fn7 2009/08/04
  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

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

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知