タグ

dankogaiとPerlに関するlesamoureusesのブックマーク (49)

  • perl - use utf8; #って何だ? : 404 Blog Not Found

    2009年06月15日07:00 カテゴリLightweight Languages perl - use utf8; #って何だ? id:otsuneに建設予定フラグがたてられていたので。 冬通りに消え行く制服ガールは、夢物語にリアルを求めない。 - subtech Perl の utf8 関係が未だ全く理解できない。わからないことがわからないので整理 use utf8はいつフラグをたてるか use utf8 しててもフラグたたないことがある…… これは、以下の実例を見ていただくのが一番よいだろう。 #!/usr/bin/perl use strict; use warnings; use utf8 (); sub check_flag{ my $str = shift; print qq("$str" ), utf8::is_utf8($str) ? 'is' : 'IS NOT',

    perl - use utf8; #って何だ? : 404 Blog Not Found
    lesamoureuses
    lesamoureuses 2009/06/15
    encode/decodeの覚え方とコレが勉強になった>dankogaiは全てASCII領域にあるため、立てた場合も立てない場合も文字列処理の結果が同じになるからだ。
  • 404 Blog Not Found:perl - パッチなしでパッチする

    2007年04月09日16:15 カテゴリLightweight LanguagesTips perl - パッチなしでパッチする Perlに限らず、動的に名前空間を書き換えることができる言語ならコンセプトはパクれるはずのtips. 状況 人様が書いたモジュールにバグ発見! バグ直した パッチも送った でも作者が$VERSION++してくれない さあどうする? オレバージョンのモジュールをつなぎでつかう? でも標準でないものをイントールするのはいやん サブクラス作ってメソッドをオーバーライドする? でも問題のモジュールが継承をサポートしているとは限らないし そもそも問題のモジュールOOじゃなかったりもするし 代替モジュールを書いてCPANにうp? -- i.e. JSON::* でも元々のモジュールがあまりによく使われているし うpは簡単でもサポート大変そうだし.... 実例 See Al

    404 Blog Not Found:perl - パッチなしでパッチする
    lesamoureuses
    lesamoureuses 2009/06/15
    サブルーチンを動的に書き換える
  • API - Twitterfeed から Hatena::Bookmark Web Hookへ : 404 Blog Not Found

    2009年06月04日23:45 カテゴリTips API - Twitterfeed から Hatena::Bookmark Web Hookへ 今までblogのTwitterにおける更新通知は、ttwitterfeedでやっていたのだけど、これを期にはてなブックマークの Web Hook 経由に切り替えました。 twitterfeedだと、一時間ごとの確認なので、blogへの投稿がtwitterに投稿されるまで最大一時間かかるのですが、これだとセルクマした瞬間に投稿が行われるので反映がずっと速くなります。 Source: #!/usr/env/bin perl use strict; use warnings; use utf8; use CGI; # use Net::Twitter; - prereqs too heavy! use LWP::UserAgent; use UR

    API - Twitterfeed から Hatena::Bookmark Web Hookへ : 404 Blog Not Found
  • perl - Mac OS X - perlをDIYする : 404 Blog Not Found

    2009年02月13日16:00 カテゴリTipsLightweight Languages perl - Mac OS X - perlDIYする 気がつかなかった。 bulknews.typepad.com: Mac OS X Security Update 2009-001 might break your Perl (CPAN) A couple of my friends on IRC have told me this, and since I'm using 10.4.11 I couldn't verify, but the latest Mac OS X Security Update 2009-001 apparently breaks your Perl, if you are using Mac OS X 10.5 (Leopard) and are using

    perl - Mac OS X - perlをDIYする : 404 Blog Not Found
  • perl - new module - Class::Axelerator : 404 Blog Not Found

    2009年02月14日08:00 カテゴリLightweight Languages perl - new module - Class::Axelerator Proof of Conceptだった 404 Blog Not Found:perl - no accessor; # だって遅いんだもん を元に、Class::Axelerator というモジュールをreleaseしました。 /lang/perl/Class-Axelerator/trunk - CodeRepos::Share - Trac Dan Kogai / Class-Axelerator - search.cpan.org http://www.dan.co.jp/~dankogai/cpan/Class-Axelerator-0.01.tar.gz Enjoy! Dan the Perl Monger NAME

    perl - new module - Class::Axelerator : 404 Blog Not Found
  • perl - open my $fh, "comand |"; # はモダンじゃない : 404 Blog Not Found

    2009年02月10日01:00 カテゴリLightweight Languages perl - open my $fh, "comand |"; # はモダンじゃない モダンPerl入門 牧大輔 「モダンPerl入門」発売記念ということで、同書を補足するentryを。 同書でちょっと残念だったのが、[5.2 外部コマンドの実行]。あまりモダンではないのだ。 P. 141 system("/sbin/wget", "http://example.com"); これはいいのだが、以下がちょっとまずい。 my $output = `/bin/ls tmp`; open(my $fh, '| cat -v'); これ、何がまずいか、というと、コマンド実行の際に/bin/shを使ってしまうのだ。そのおかげでcommand < from > to 2&>1のようなリダイレクトも使えるなどの利点もあ

    perl - open my $fh, "comand |"; # はモダンじゃない : 404 Blog Not Found
    lesamoureuses
    lesamoureuses 2009/02/10
    >open my $fh, '|-', qw/cat -v/ or die $!;
  • perl - Scalar::Util::dualvar() : 404 Blog Not Found

    2008年10月24日22:30 カテゴリLightweight Languages perl - Scalar::Util::dualvar() 久しぶりにPerlの話題。 sinkin' in the rain - Perlの==とeq つまり、eqは純粋に「文字列として比較した時に一致するか」を返しているみたい。言いかえれば、eqこそ常に、文字列に暗黙的に変換(キャスト)をかけてから比較しているみたい。 s/みたい//g#でおk というのはさておき、こんなことも出来ますよ、という話題。 一目見れば、何をしているかおわかりいただけるかと。 use strict; use warnings; use Scalar::Util qw/dualvar/; my $forty2 = dualvar 42, 'forty two'; print "$forty2\n"; print $forty

    perl - Scalar::Util::dualvar() : 404 Blog Not Found
    lesamoureuses
    lesamoureuses 2008/10/27
    >Scalar::Util::dualvar()は、双方のフラグを有効にすることにより、Perlが勝手に「型変換」せずに内部の値をそのまま利用するようにするわけです。
  • perl - デフォルト値のperlらしい指定法 : 404 Blog Not Found

    2008年07月02日23:00 カテゴリLightweight Languages perl - デフォルト値のperlらしい指定法 Perl Cookbook (English) Christiansen / Torkington [邦訳: Perlクックブック] これでもよいのだけど、さらに恰好つけるとよりperlらしくなるので。 デフォルト値の扱い。 - サンプルコードによる Perl 入門 Scalarによるデフォルト値 sub num{ my $num = shift; # .... } ここは sub num{ my $num = shift || -1; # .... } の方がわかりやすい。0または''を入力値、すなわち非デフォルト値として扱いたい場合のみ、 sub num{ my $num = shift; $num = -1 if not defined $num;

    perl - デフォルト値のperlらしい指定法 : 404 Blog Not Found
  • perl - DateTime->now(time_zone => $obj) # better practice : 404 Blog Not Found

    2006年12月07日16:30 カテゴリLightweight Languages perl - DateTime->now(time_zone => $obj) # better practice 私はあまりDateTimeは使ってないのだけど、better practiceを見つけたと思うので。 [perl] DateTime->now(time_zone => 'local')って激遅 - おいぬま日報(不定期) (2006-12-06) Perl界隈の日付操作モジュールのデファクトスタンダードであるDateTimeですが、今まで「タイムゾーンなんてシステムで定義されているものから勝手に取ってきてほしい」という理由で DateTime->now(time_zone => 'local'); なんてことをしてたのですが、これが激遅なことが発覚しました。 二行で書くと、以下のとおり。

    perl - DateTime->now(time_zone => $obj) # better practice : 404 Blog Not Found
    lesamoureuses
    lesamoureuses 2008/10/21
    /usr/share/zoneinfo必要かー>/etc/localtimeがsymlinkだから。DateTime::TimeZoneはこの場合はSymlinkを読んでタイムゾーン名をすぐに割り出すのだけど、実ファイルの場合は、/usr/share/zoneinfo以下のファイルを全部File::Compareで比較
  • perl - 暗黙的な参照 # @_ と $_ : 404 Blog Not Found

    2008年07月06日19:30 カテゴリLightweight Languages perl - 暗黙的な参照 # @_ と $_ Good Question! @_の要素の$_[0],$_[1]等は、格納するべきアドレスが可変! - 燈明日記 なぜ、こんな仕様にしたのだろうか・・・。 Good Question だけあって、Good Reasons もきちんとあります。 @_と$_の秘密 まず、事実を再確認しておきましょう。 Perlにおいて、引数を格納する配列@_は、常に参照(reference)です。値(value)ではありません。 これが何を意味するかというと、@_への書き込みが、呼び出し元への書き込みとなるということです。 実際に様子を見てみましょう。 [Run via CodePad] sub inc { ++$_[0] } my $a = 0; print $a, "\n"

    perl - 暗黙的な参照 # @_ と $_ : 404 Blog Not Found
    lesamoureuses
    lesamoureuses 2008/07/07
    ベストプラクティスのP.111に出てた>もう一つ留意点。foreach my $elem (@array){ ... }の$elemも参照となります。
  • perl - tie()って何をtieするの? : 404 Blog Not Found

    2008年07月05日01:30 カテゴリLightweight Languages perl - tie()って何をtieするの? 私はタイをまとうのがだいっきらいですが、Perl 5の中で一番好きな関数がtie()だったりします。 tie関数とは - 燈明日記 すると、裏で処理が動き、オブジェクトをコンストラクトしたり、とある処理結果が参照できたり、代入したものに対応したものを格納出来たりする。 というわけで、tie()について語っておくことにしましょう。 tie()とはなにか? ずばり、「オブジェクトではない、perlの組み込みデータタイプを裏でオブジェクト化する仕組み」のことです。それがなぜtieと呼ばれるかと言えば、変数を指定されたクラスに結びつけるから、です。 論より証拠、実際に見てみましょう。 use strict; use warnings; { package MySca

    perl - tie()って何をtieするの? : 404 Blog Not Found
    lesamoureuses
    lesamoureuses 2008/07/07
    >オブジェクトではない、perlの組み込みデータタイプを裏でオブジェクト化する仕組み
  • perl - use Carp; # warn() と die() だけじゃなくて : 404 Blog Not Found

    2008年06月30日04:00 カテゴリLightweight LanguagesTips perl - use Carp; # warn() と die() だけじゃなくて 以下のエラー処理の方法にちょっと口を挟みたくなったので。 エラー処理を行う。 - サンプルコードによる Perl 入門 warn() vs. die() まず、warn()の使い方。エラーに対して使ってはいけません。warnはその名の通り、あくまでもエラーではなく警告です。エラーの際にはdie()を使わなければなりません。 警告とエラーの違いですが、警告は「続けて処理してもいいけど、これはあなたの意図ではないかもしれません」という場合、エラーは「このままでは処理を続けられません」という場合です。 たとえばperlの場合、抜けた引数はundefなので、数値としては0、文字列としては''として解釈されます。それらをデフ

    perl - use Carp; # warn() と die() だけじゃなくて : 404 Blog Not Found
    lesamoureuses
    lesamoureuses 2008/07/01
    >.pmならcarp/croakを、.plならwarn/dieと覚えておけばよいでしょう。
  • 404 Blog Not Found:perl - There's more than one way to die

    2008年05月10日15:00 カテゴリLightweight Languages perl - There's more than one way to die いよいよ来週はYAPC::Asia::2008ですが、Hotel DANは日から開業。我が家では日から20日までが「YAPC旬間」です。 というわけで、その間は少なくとも一つはperlがらみのentryにしていく所存です。 で、第一回はいきなりdieの話題です。 開発日誌 pp-perl: Perlのエラー処理プログラムを停止して、メッセージ(LIST)をSTRERRに出力します。 間違っていませんが正しいとは言えません。 die = throw die()とは何か? まずは、以下のコードをご覧下さい。 [Run via codepad] eval { my $zero = 0; my $dead = 1 / $zero;

    404 Blog Not Found:perl - There's more than one way to die
    lesamoureuses
    lesamoureuses 2008/07/01
    > 本当の本当にexit()するしかない場合を除いて、なるべくdie()するように心がけましょう。
  • perl - 勝手に添削 - Perl入門#1@ITPro : 404 Blog Not Found

    2008年06月03日06:00 カテゴリLightweight Languages perl - 勝手に添削 - Perl入門#1@ITPro さすがに出典が日経Linux 2003年7月号だけあって、少しトウがたってはいるけど、現在でもわずかな修正で使える記事。さすが川合さんといったところか。 第1回 Perlの文法の基ITpro というわけで、この記事の「現代化」Patchを。 全般 use strict;だけではなくuse warnings;も加えましょう。 さらに,調べても分からないことがあれば,メーリング・リストやユーザー・グループ*2に質問してみてもよいでしょう。 blogに書くのもアリです。あと私は使っていないけどIRCとか。 ビルトイン関数は()でくくらない方が視認性が上がります。 before: chomp($sLine); after: chomp $sLine;

    perl - 勝手に添削 - Perl入門#1@ITPro : 404 Blog Not Found
    lesamoureuses
    lesamoureuses 2008/06/03
    http://blog.livedoor.jp/dankogai/archives/51176081.html/>このあたりのことは、perldoc perlsecを参照のこと。
  • perl - stat()、-X 演算子、そして _ ファイルハンドル : 404 Blog Not Found

    2008年05月12日13:30 カテゴリLightweight Languages翻訳/紹介 perl - stat()、-X 演算子、そして _ ファイルハンドル こういった場合のTipです。 ファイル演算子「 -s 」で、ファイルサイズを取得する。 - サンプルコードによる Perl 入門 if( -f $file ){ my $file_size = -s $file; print "$file のファイルサイズは、$file_size バイトです。\n\n"; } else{ print "$file は、存在しませんでした。\n\n"; } _ ファイルハンドル 実は、-X演算子は、その演算子に期待された結果を返すだけではなく、その他のファイル情報を特殊ファイルハンドル_にセットします。これを使うと、上のコードは if( -f $file ){ my $file_size =

    perl - stat()、-X 演算子、そして _ ファイルハンドル : 404 Blog Not Found
    lesamoureuses
    lesamoureuses 2008/05/13
    >実は、-X演算子は、その演算子に期待された結果を返すだけではなく、その他のファイル情報を特殊ファイルハンドル_にセットします。
  • perl - 文字参照を(en|de)codeする : 404 Blog Not Found

    2008年05月11日21:00 カテゴリLightweight LanguagesTips perl - 文字参照を(en|de)codeする すでに正解が書かれていますが、 [を] Unicode の16進数の実体参照を正規表現などで元に戻す pack と Encode::decode を使うと良いみたい。 はてなブックマーク - miyagawaのブックマーク / 2008年05月11日 それ HTML::Entities::decode / regexp でも chr(hex($1)) のほうがわかりやすくないかな 繰り返しておくだけの価値はあるので。 HTML::Entitiesを使う まず、HTML::Entitiesのdecode_entities()を使うという方法があります。これがベストプラクティスかな。 #!/usr/local/bin/perl use strict;

    perl - 文字参照を(en|de)codeする : 404 Blog Not Found
    lesamoureuses
    lesamoureuses 2008/05/12
    使ったことないけど使う時のために
  • perl - Encode 中級 : 404 Blog Not Found

    2008年05月08日04:00 カテゴリLightweight Languages perl - Encode 中級 以前書いた 404 Blog Not Found:perl - Encode 入門 は大好評でしたが、 ウェブで利用される文字コード、UnicodeがASCIIを上回る--グーグルが明らかに:マーケティング - CNET Japan UnicodeがASCIIを追い越し、World Wide Web上で最も多く利用されている文字コード体系になったとGoogleのシニアインターナショナルソフトウェアアーキテクトMark Davis氏がブログで述べている。 という時代に完全対応するには、入門以上の知識がちょっと必要になります。 例えば、blogをホストしてくれているlivedoor blogの文字コードはEUC-JP。「時代はUnicode」だと言っても、こうした事情もまだ

    perl - Encode 中級 : 404 Blog Not Found
    lesamoureuses
    lesamoureuses 2008/05/08
    「UTF-8で書かれたTextをEUC-JPに変換し、変換しきれないものは実体参照に」
  • perl - Hello World! バトン : 404 Blog Not Found

    2008年05月03日23:30 カテゴリ書評/画評/品評 perl - Hello World! バトン ったく、みんなして人使いが荒井由美。 【コラム】Hello Worldコレクション (6) Perl編 - 意外!?に多芸多才なスクリプト言語 | エンタープライズ | マイコミジャーナル はてなブックマーク - 【コラム】Hello Worldコレクション (6) Perl編 - 意外!?に多芸多才なスクリプト言語 | エンタープライズ | マイコミジャーナル というわけで、まずはリストの続き。 リストA Perl 5.10以降のsayを使う方法 use feature 'say'; say 'Hello, World!'; リストB Perl6::Sayで代用 use Perl6::Say; say 'Hello, World!'; リストC Pelr 5.10以降のIO::Ha

    perl - Hello World! バトン : 404 Blog Not Found
    lesamoureuses
    lesamoureuses 2008/05/08
    print色々
  • Unicode - 似た文字同士にご用心 : 404 Blog Not Found

    2008年05月02日04:00 カテゴリLightweight Languages Unicode - 似た文字同士にご用心 後者はハイフンでなくてマイナス記号でんがな。 [を] UTF-8 の全角ハイフンが Perl の正規表現にマッチしなくて悩んだ で、元のテキストファイルの全角ハイフンを「od -t x1」 で見てみると「ef bc 8d」と「e2 88 92」の2種類が混じっていました。 前者は「\p{Hyphen}」にマッチするのですが後者はダメ。 まあ原因は分かったので、前処理でバイナリ置換して解決しました。 で、紛らわしそうなのを名前のHYPHENとMINUS SIGNでgrepするとこんな感じになる。 egrep '(HYPHEN|MINUS SIGN)' /usr/local/lib/perl5/5.10.0/unicore/Name.pl -002DHYPHEN-MI

    Unicode - 似た文字同士にご用心 : 404 Blog Not Found
    lesamoureuses
    lesamoureuses 2008/05/08
    あかん。こんなんわからん。
  • 404 Blog Not Found:「怠惰はプログラマの美徳で言語の機能じゃない」っていうけど

    2008年04月28日21:00 カテゴリLightweight Languages 「怠惰はプログラマの美徳で言語の機能じゃない」っていうけど 怠惰を促す言語とそうでない言語は確かにあるように感じている。 「怠慢はプログラマの美徳」というけれど - kwatchの日記 はてなブックマーク - novtanのブックマーク / 2008年04月28日 怠惰はプログラマの美徳であってそれを言語の機能に求めてはいけない。「怠慢はプログラマの美徳」というけれど - kwatchの日記 例えば、スクリプト言語で次のような Hash や Dict を書いたとする。 data = [ {'name'=>'Foo', 'age'=>20, 'email'=>'foo@mail.com'}, {'name'=>'Bar', 'age'=>21, 'email'=>'bar@mail.net'}, {'nam

    404 Blog Not Found:「怠惰はプログラマの美徳で言語の機能じゃない」っていうけど
    lesamoureuses
    lesamoureuses 2008/04/29
    こんな書き方できるのか。