タグ

perlに関するsbg3のブックマーク (320)

  • 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

    sbg3
    sbg3 2009/06/12
  • perl - use encoding; #は黒歴史 : 404 Blog Not Found

    2009年06月08日14:30 カテゴリLightweight Languages perl - use encoding; #は黒歴史 ぎゃあぁぁ length関数で文字列の長さを求める - perl初心者BLOG - Hatena::Group::Perl語の文字数を正確に求めたい場合、use encodingを指定する use encoding;は、jperlなど、かつて存在したL10Nされたperl用に書かれたレガシースクリプトを、モダンperlで動かすときのためのおまじないです。こういう目的で利用すべきではありません。 このあたりのことは、以前 404 Blog Not Found:perl - no encoding; # whenever possible でも書いたのですが、大事なことなのでまた書きます。 スクリプトはUTF-8で書き、use utf8;する のがモ

    perl - use encoding; #は黒歴史 : 404 Blog Not Found
  • Perl 5 今昔 - Perl-users.jp

    前は王道だったあの書き方も最近ではこうかな、というもの集です。 一般編 oldtype としたものもたいていは動きますし、環境の都合や軽量だなどの理由で普通に使われたりもします。そのへん勘違いなきよう。 CPANモジュールの検索 自動リダイレクトされるので知ってると思いますが。 oldtype: search.cpan.org modern: MetaCPAN CPANモジュールインストール oldtype: perl -MCPAN -e shell modern: cpan post modern: cpanm Module OR マッパー oldtype: Class::DBI, DBIx::Skinny modern: DBIx::Class, Data::ObjectDriver, Teng, Aniki テンプレートエンジン oldtype: HTML::Template, Te

    sbg3
    sbg3 2009/06/08
  • 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
    sbg3
    sbg3 2009/06/06
  • js/perl/python/ruby/scheme - 真偽のほどはいかに : 404 Blog Not Found

    2009年06月05日03:30 カテゴリLightweight Languages js/perl/python/ruby/scheme - 真偽のほどはいかに こちらでも調べてみた。 各言語におけるtrue/falseまとめ - 床のトルストイ、ゲイとするとのこと 追加で調べたのは NaNとInfの扱い - 作り方と真偽値 「ジェネリック」な真偽値 JavaScript Perlと以外と似ている。 NaNはNaN、InfはInfinityという名で組み込み ジェネリックな真はtrue、偽はfalse #!/usr/bin/js tell_me_the_truth = function(s){ var p; eval('p = ' + s); if (p){ print('\'' + s + '\' (' + p + ')' + ' is TRUE.'); } else{ print('

    js/perl/python/ruby/scheme - 真偽のほどはいかに : 404 Blog Not Found
  • 第8回 Reaction:CatalystをもっとDRYに | gihyo.jp

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

    第8回 Reaction:CatalystをもっとDRYに | gihyo.jp
    sbg3
    sbg3 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の技ログ
    sbg3
    sbg3 2009/06/03
  • 動的パッチは一つのモジュールにまとめて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の技ログ
    sbg3
    sbg3 2009/06/01
  • 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

    sbg3
    sbg3 2009/05/28
  • 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

    sbg3
    sbg3 2009/05/26
  • perl - もうやらなくてもいい昔のコーディングテクニック : 404 Blog Not Found

    2009年05月05日13:00 カテゴリLightweight Languages perl - もうやらなくてもいい昔のコーディングテクニック ここに上がっているテクニックは、未だにときどき(確信犯的)に使(う|わざるを得ない中年プログラマーの弾です。 もうやらなくていい昔のコーディングテクニックあれこれ - スラッシュドット・ジャパン 特に、 あとはパンチャーのおばさんにお菓子を持って行くのも、ひとつのテクニックです。 は、 s/パンチャー/プログラマー/g すると現在に至るも最強のテクニックで、我ががこの使い手だというのは我が家で hackerthon に参加された方は一人残らずご存知だと思います。 と前おいた上で、それのPerl編を。 以下、順不同で8つほど。 0. use strict;とuse warnings;なしでスクリプトを書く やはり最初に書いておくべきでしょう。理

    perl - もうやらなくてもいい昔のコーディングテクニック : 404 Blog Not Found
    sbg3
    sbg3 2009/05/07
  • Perlから外部コマンドを実行する - ヒルズで働く@robarioの技ログ

    最近Perlから外部コマンドを実行する場合は、openやsystemなどを使わずにIPC::Cmdを良く使っている。 特に深い理由はないんだけど、 IPC::Cmdは5.009005からコアモジュールに入っている それなりに綺麗に書ける $IPC::Cmd::VERBOSEを真にしておけば、実行するコマンドの内容を出力してくれる 戻り値も「標準出力,標準エラー出力,その両方」が、改行区切りで配列になって戻ってくるのも地味に便利 (『かえりち』だと『返り血』に変換されるので、昔から『もどりち』って言うようにしてる>id:amachang) とかかなあ。多分1番目の理由が大きい。コアモジュールに凝ってるのかもしれない。 ログ吐きにはLog::Message::Simple使うようになったし。 まあLog::Message::Simpleは、daemontools付属のmultilogと相性が良

    Perlから外部コマンドを実行する - ヒルズで働く@robarioの技ログ
    sbg3
    sbg3 2009/05/01
  • 『Debug Hacks デバッグを極めるテクニック &amp; ツール』感想 - Kentaro Kuribayashi's blog

    『Debug Hacks』を読みました。読みましたつっても、そもそも門外漢過ぎる分野の話が多いので、基礎知識のおさらい、アプリケーションデバッグ、その他ツールの使い方のあたりを読んだだけで、カーネルをデバッグして云々ってなところはほとんどとばしてしまいましたが……。しかしそれでも、得るところが大きかっただろうと思いますし、今後、色々と役に立つこともあるのではないかなあと、期待します。 Debug Hacks -デバッグを極めるテクニック&ツール 作者: 吉岡弘隆,大和一洋,大岩尚宏,安部東洋,吉田俊輔出版社/メーカー: オライリージャパン発売日: 2009/04/27メディア: 単行(ソフトカバー)購入: 12人 クリック: 405回この商品を含むブログ (71件) を見る 僕は普段はだいたいPerlでしかコードを書かないので、書にあるような、GDBやら様々なツールを使い倒してデバッグ

    『Debug Hacks デバッグを極めるテクニック &amp; ツール』感想 - Kentaro Kuribayashi's blog
  • PerlとRubyで省メモリなハッシュを使おう - mixi engineer blog

    サボっていた早朝ジョギング@駒沢公園を再開して2週間たち、やっと抜かれる数より抜く数の方が増えてきたmikioです。今回は、PerlRubyのハッシュの代用としてTokyo Cabinetを使うことでメモリ使用量を激減させられることを説明します。 抽象データベースAPI Tokyo Cabinetには抽象データベースという機構があり、先日、そのPerlRubyのバインディングをリリースしました。それを使うと、各種言語のハッシュとほぼ同じような共通したインターフェイスで、以下のデータ構造を利用することができます。 オンメモリハッシュ:各種言語に標準のハッシュと同じく、メモリ上でkey/valueの関係を表現する。 オンメモリツリー:メモリ上の二分探索木としてkey/valueの関係を表現する。 ファイルハッシュ:いわゆるDBMとして、ファイル上でkey/valueの関係を表現する。 ファ

    PerlとRubyで省メモリなハッシュを使おう - mixi engineer blog
  • 第5回 Pod::Perldoc:ドキュメントはどこに? | gihyo.jp

    もっとも、これがそのままPerlの人気と連動していたかというと、そうとも言い切れないのがむずかしいところ。2005年以降の退潮にバブル的な人気を誇ったRuby on Railsの影響があったのは間違いないでしょうが、内外から500人近い参加者を集めるYAPC::Asiaのチケットがわずか3日で売り切れてしまうくらいの需要はあるのですから、これまで「モダンな」がなかなか出てこなかった原因は、むしろ20世紀末から続く出版界の不況とそれによる出版傾向の変化や、日Perlユーザがブログという個人メディアで旬の話題を消費することに慣れてしまった結果、最低でも2~3ヶ月のタイムラグが生じてしまう出版コストに不満を感じてしまうようになった(2002年というのはMovable Typeの日語化パッチが出回り始めた年でもあります⁠)⁠、等々の問題の方が大きかったようにも感じられます。 単行10冊分

    第5回 Pod::Perldoc:ドキュメントはどこに? | gihyo.jp
    sbg3
    sbg3 2009/04/21
  • Perlでアニメ顔を検出&解析するImager::AnimeFace - デー

    というのを作ったので自己紹介します。 2月頃から、コンピュータでアニメ顔を検出&解析する方法をいろいろ試しつつ作っていて、その成果のひとつとして、無理やり出力したライブラリです。 はじめに はじめにざっとライブラリの紹介を書いて、あとのほうでは詳細な処理の話を僕の考えを超交えつつグダグだと書きたいと思います。 Imager::AnimeFaceでできること Imager::AnimeFaceは、画像に含まれるアニメキャラクター的な人物の顔の位置を検出し、さらに目や口など顔を構成する部品位置や大きさの推定、肌や髪の色の抽出を簡単に行うことができるライブラリです。 これらが可能になると、 画像から自動でいい感じのサムネイルを作成できる 動画から自動でいい感じのサムネイルを作成できる 自動的にぐぬぬ画像が作れる 自動的に全員の顔を○○にできる 顔ベースのローカル画像検索 など、最新鋭のソリューシ

    Perlでアニメ顔を検出&解析するImager::AnimeFace - デー
  • 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

    sbg3
    sbg3 2009/04/10
  • 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

    sbg3
    sbg3 2009/04/06
  • 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

    sbg3
    sbg3 2009/04/02
  • 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