タグ

perlとPerlに関するotsuneのブックマーク (1,473)

  • perl - で全角半角変換をモダンに行う : 404 Blog Not Found

    2009年06月06日01:15 カテゴリLightweight Languages perl - で全角半角変換をモダンに行う 今ならLingua::JA::Regular::Unicodeが第一選択肢ですが、こういう方法もあるということで。 Perl で半角カナと全角カナの変換をする : Serendip - Webデザイン・プログラミング Perl を使って半角カタカナと全角カタカナの変換をするスクリプトを、標準モジュールの Encode.pm と Unicode::Japanese と Lingua::JA::Regular::Unicode を使ってそれぞれ変換スクリプトを書いてみる。 CORE Moduleのみを使うという縛りをかけています。 #!/usr/bin/perl use 5.008001; use strict; use warnings; use utf8; us

    perl - で全角半角変換をモダンに行う : 404 Blog Not Found
    otsune
    otsune 2009/06/06
  • local::libを使ったCatalyst5.7と5.8の比較テスト - hide-k.net#blog

    JPAセミナー#1でJay Shirley氏が絶賛していたlocal::libですが、その際に「異なるバージョンのモジュールをテストするのにも便利ですね」とか言っていた気がするので、早速やってみました。 お題は、Catalystで先日公開されたMoose版の5.8と旧5.7をベンチマーク比較してみます。 まずはCatalyst::Runtime 5.71001を$HOME/cat5.7にインストールします。 $ cd $ perl -MCPAN -Mlocal::lib=cat5.7 -e 'CPAN::install("M/MR/MRAMBERG/Catalyst-Runtime-5.71001.tar.gz")' 次にCatalyst::Runtime 5.8(この時点での最新版は5.8001でした)を$HOME/cat5.8にインストールします。 $ cd $ perl -MCPAN

    otsune
    otsune 2009/06/04
  • tokuhirom blog

    Blog Search when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${entry.path} [in template "__entry.ftlh" at line 3, column 25] - Reached through: #include "__entry.ftlh" [in template "entry.ftlh" at

    otsune
    otsune 2009/06/03
  • Login

    ...lists the people you are following. You must register or be logged in to use this feature.

    otsune
    otsune 2009/06/03
  • voidコンテキストの使われ方 - ヒルズで働く@robarioの技ログ

    まあ、PP のモジュールが void context であることを判定につかってるケースってほとんどないんですけどね。 ないですねぇ。自分もそんなの書かないし。 ちなみにClass-MOPではlib/Class/MOP/Method/Wrapped.pmでvoidコンテキスト関連の処理が書かれてますね。(前のエントリの最後に書いたのと同じ用途) ラップ系はvoidコンテキストの面倒を見ないといけないですからね。 これまでの流れだと「そもそもvoidコンテキストって何に使うねん」って思ってる人もいそうなので例を挙げておきます。 voidコンテキストの実用例としては、例えばPod::Simple::RTF(Perl5.9.3以降ならコアモジュール)にあって、lib/Pod/Simple/RTF.pmのsub rtf_escで出現します。コメントも付いてて処理も平易なので、何やってるかは見れば分

    voidコンテキストの使われ方 - ヒルズで働く@robarioの技ログ
    otsune
    otsune 2009/06/03
  • Perlに関するすべての記事 [okyuu.com]

    Perlのincludeのパス at:2009/06/01 11:41 最近Perlをはじめています。そこで、疑問があるのですがPerlにもPHP同様include_path のよう... cpanのインストールしたライブラリ一覧の表示 at:2009/05/30 11:19 はじめまして。まだまだ初心者ですが、宜しくお願いいたします。cpan でインストールしたライブラリの一覧を見... WWW::Mechanizeで透過的にGZipエンコードされたコンテンツを扱いたい。 at:2009/05/17 21:36 perlのWWW::Mechanizeを使ってあるコンテンツを取得してます。ヘッダにContent-Enc... forkでのDB接続 by:sakamaki at:2009/04/23 13:32 すみません。過去に自分が経験したことなのですが結局、解決に至らなかったの

    otsune
    otsune 2009/06/03
  • String::Dictionary - naoyaのはてなダイアリー

    String::Dictionary という Perl のライブラリを作ってみました。 http://github.com/naoya/perl-String-Dictionary/tree/master String::Dictionary は検索エンジンその他を作る時に必要になる「辞書」のためのデータ構造 + API です。辞書は単語の集まりですが、これを配列やハッシュなどで持つのではなく、単語をすべて繋げた一つの大きな文字列として保持することでメモリ領域を節約したものです。単語は単に文字列連結で持つだけでなく、Front Coding で圧縮しています。以下簡単な解説です。 辞書は例えば [0] ・・・ jezebel [1] ・・・ jezer [2] ・・・ jezerit [3] ・・・ jeziah [4] ・・・ jeziel ...という風に単語を配列で持つことで実現でき

    String::Dictionary - naoyaのはてなダイアリー
    otsune
    otsune 2009/06/03
  • ヘルパースクリプト - Ark 0.1 Documentation (DRAFT)

    Ark にはアプリケーションのひな形作成や、テストサーバーの立ち上げなど、開発を助けるヘルパースクリプトが付属しています。 ひな形生成 アプリケーションのひな形作成 ark.pl newapp ApplicationName この newapp コマンドは ApplicationName というディレクトリを作成しその中に Ark アプリケーションのひな形を生成します。 このコマンドだけがどの場所でも使用することができます。 その他のコマンドはアプリケーションディレクトリ上でしか動作しません。 Controller/View/Model などのひな形生成 ark.pl controller|view|model [ClassName] [BaseClassName] このコマンドはアプリケーションディレクトリで実行するとそのアプリケーションの指定されたクラスのひな形を生成します。 Base

    otsune
    otsune 2009/06/03
  • https://szabgab.com/perl_in_test_automation.html

    otsune
    otsune 2009/06/03
  • HTTP::Engineでテスト : As Sloth As Possible

    そう言えばこないだのうどん屋のコードは一切テストを書かなかったけど、それはよろしく無い、まったくもって主義に反するし、RubyのときはちゃんとSpec書いたのにPerlのときは書かないだとかふざけてる、と思ったのでテストも書いてみることにした。 さてテストだけど、HTTP::Engineにはちゃんとテスト用のインターフェースが用意されている。あと、テストリクエストを生成するモジュールもある。なんだ、じゃあ話は簡単だ。 interface => { module => 'Test' } でengineを作る HTTP::Engine::Test::Requestでrequestを作る engineのrunメソッドにテストリクエストを投げてやる 返ってきたレスポンスをチェックする ってことですね、わかります。 まずは素直に書いてみる コード量少ないのではっつけちゃおう。Udon::AppにGE

    HTTP::Engineでテスト : As Sloth As Possible
    otsune
    otsune 2009/06/02
  • Ark - opensource.kayac.com

    Web Application Framework Description Ark は perl で書かれたウェブアプリケーションフレームワーク(WAF)です。 Ark はおなじく perl 製のフレームワークである Catalyst を参考に開発されており、その多くの特徴はそのまま引き継いでいます。 そのため Catalyst の経験のある開発者であればすぐに使い始めることができるでしょう。 Catalyst とのいちばんの違いは、Catalyst は実用的に運用するためには基的に mod_perl や FastCGI など永続的なプロセス実行環境を要求するのに対し、 Ark は CGI でも実用的に動作するという点を重視して開発されています。 もちろん mod_perl/FastCGI でも動作します。 より詳しい説明はドキュメントを参照ください。 Download 現在の最新バージ

    otsune
    otsune 2009/06/02
  • 第8回 Reaction:CatalystをもっとDRYに | gihyo.jp

    アプリケーションの枠組みを越えた再利用 前回は、Catalyst 5.7で登場したチェーンドアクションを利用して適切なベースコントローラをつくれば、CRUDのような定型処理は再利用できるようになる、という話をしました。これはコンテントマネジメントシステム(CMS)のように同じようなインタフェースを持つ画面が多いシステムをつくるときには特に効果的なのですが、その再利用を、ひとつのアプリケーション内だけで完結させてしまうのはもったいない話。自社でつくるアプリケーションにはどんどん使い回していきたいものですし、コピー&ペーストを避けるためには、なんらかの名前空間上にその共通コードをまとめていく必要があります。 もちろんそのコードが小さく、十分に一般化できるものなら、Catalyst、あるいはCatalystXという名前空間に入れてもかまいませんが、コントローラの部品だけでなく、モデルやビューまで

    第8回 Reaction:CatalystをもっとDRYに | gihyo.jp
    otsune
    otsune 2009/06/02
  • 動的パッチは一つのモジュールにまとめてuseした方が良いかも - ヒルズで働く@robarioの技ログ

    言語的に云々という話ではなくて、複数人で開発するときにハマりそうなので(というかハマったので) 動的にパッチを当てるには # gotoするよ版 BEGIN { use UNIVERSAL::require (); if ( Foo->require ) { my $orig = Foo->can('func'); no warnings qw(redefine); *Foo::func = sub { my ($foo) = @_; # shiftしない方が楽なことが多い # pre-process... goto &{$orig}; # post-processが必要な場合は記事の最後で }; } } とするのが定石(Hook::LexWrap使えっていう話もあるけど筋とは違うので割愛)だと思いますが、これをどこでやるかという話。 とあるCatalystControllerで変なデバッ

    動的パッチは一つのモジュールにまとめてuseした方が良いかも - ヒルズで働く@robarioの技ログ
    otsune
    otsune 2009/06/01
  • Optimization of sort() - Islands in the byte stream (legacy)

    Perlの最適化器はかなり頑張ってsort()の最適化を試みている。具体的には,配列をその場で直接ソートする場合,数値または整数でソートする場合,ソートブロックの$aと$bを単純に入れ替えた場合において,最適化された高速なバージョンが使われる。 以下はすべて5.10.0で確認した。 配列を直接ソートする場合 ソート後のリストを元の配列に代入するケース(たとえば"@array = sort @array")では,sort()に渡された配列を直接並び替えるため,メモリと速度の両方で勝る。 確認コード: $ perl -MO=Concise,-exec -e '@a=sort@a' # ... 7 <@> sort lK/INPLACE # ... ソートオペレータにおける「INPLACE」というフラグがこの最適化の表れである。 数値でソートする場合 ソートブロックでの数値による比較(たとえば"

    Optimization of sort() - Islands in the byte stream (legacy)
    otsune
    otsune 2009/06/01
  • Proc::InvokeEditorでスクリプトからエディタ起動

    KiokuDBがちょっと前から気になってて、そしたらたまたまid:tokuhiromがブログで使い方などを書いてたので、それを見ながら試してみようと思いインストールしていたら、requiredに入ってるProc::InvokeEditorというモジュールが目につきました。なにをするモジュールだろと思って調べてみたら便利そうだったので紹介。 これ、なにをするモジュールかと言うとよくcvsとかsvnとかgitとかでコミットする際に「-m」でコメント指定しないとエディタが開いて編集させたりすると思うんですが、その挙動を簡単に記述できるようになるモジュールです。 use Proc::InvokeEditor; my $unedited_text = '元々のテキスト'; my $edited_text = Proc::InvokeEditor->edit($unedited_text); warn

    otsune
    otsune 2009/05/30
  • tokuhirom blog

    Blog Search when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${entry.path} [in template "__entry.ftlh" at line 3, column 25] - Reached through: #include "__entry.ftlh" [in template "entry.ftlh" at

    otsune
    otsune 2009/05/29
  • HTTP::Engineのミドルウェアを作ってみる : As Sloth As Possible

    先週末からこっちうどん屋をいじって遊んでたのだけど、HTTP::EngineにはHTTP::Engine::Middlewareというミドルウェアを作る仕組みもあるので、せっかくなのでUdonMap(Rack::URLMapもどき)をミドルウェアで実装してみた。 gist: 117012 - GitHub 前回の記事のときと構成が変わってるけど気にしない方向で。あとで前の記事直しとこう前の記事も補足した。Udon::Middleware::URLMapがミドルウェアで、server-middleware.plがミドルウェア版UdonMapを使って書き直したもの。 ミドルウェア自体は簡単に作れた。use HTTP::Engine::MiddlewareするとMooseの初期化処理をしたりミドルウェア用のメソッドを生やしたりしてくれるので、HTTP::Engineをnewするときに指定したハン

    HTTP::Engineのミドルウェアを作ってみる : As Sloth As Possible
    otsune
    otsune 2009/05/29
  • Template Toolkit 社内勉強会のレポート - hamashun.hatena

    あちこち間違ってるという指摘を受けたのであちこち直しました>< にぽたんさんによる、Template Toolkit(TT)の社内勉強会がありました。 という訳でOpen & Share! アジェンダ 変数展開について オブジェクトからの呼び出し 意外と知られてない事 質問への回答 変数展開について TTはPerlなので、Perlに準拠する。 Perlは$とか@(シギル)で変数の型がわかるけど、TTにはそういうのがない。 しかし、型自体は持っている。 スカラー 配列 ハッシュ オブジェクト 実際は複雑で、スカラーのなかに配列とかなんか色々あるらしい。 スカラー 実は業務ではあんまり使われない。 単一の値しか持たない文字列。 または数値。 配列 一つの変数の中に複数の値を持つ値 ちなみにコード中に登場する "=" と "in" に違いはない。 全く同じ動作をする。 ちなみにFOREACH中に

    Template Toolkit 社内勉強会のレポート - hamashun.hatena
    otsune
    otsune 2009/05/29
  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

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

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
    otsune
    otsune 2009/05/29
  • レンタルサーバーでCPANモジュールをインストールする - D-6 [相変わらず根無し]

    レンタルサーバーでCPANモジュールをインストールする 注:まだ当にレンタルサーバーでは試してないです。 思い立ってすっげぇ簡単なスクリプトを書いてみた。local::libを同梱する必要があるのと、~/perl5と.cpanがスクリプト実行ユーザー権限で書き込み・読み込みできる必要がある。 #!/usr/local/bin/perl use local::lib qw(/home/daisuke/perl5); use CGI; use CGI::Carp qw(fatalsToBrowser); use CPAN; sub main { local $| = 1; my $q = CGI->new; if ($q->param('mode') eq 'install') { install($q); } else { control($q); } } sub install { my

    otsune
    otsune 2009/05/27