タグ

ブックマーク / dayflower.hatenablog.com (8)

  • mod_perl2 の $r->path_info 等のクセ - daily dayflower

    Apache2::RequestRec#path_info() 等を触っててもどうも安定しないというか望み通りのものが得られないなぁと思っていたんで調べてみました*1。 まずは Apache2::RequestRec のリファレンスから。 path_info Get/set the PATH_INFO, what is left in the path after the URI --> filename translation: (略) filename Get/set the filename on disk corresponding to this response (the result of the URI --> filename translation). (略) この下線部がにおいます。なので,実験。 <Location /sandbox/abc> SetHandler

    mod_perl2 の $r->path_info 等のクセ - daily dayflower
    cho45
    cho45 2010/12/21
  • use utf8 環境下で => オペレータの左辺が UTF8 flag on になってしまう - daily dayflower

    use strict; use warnings; sub Dump { @_ = map { sprintf "'%s'(%s)", $_, utf8::is_utf8($_) ? 'utf8' : 'bytes' } @_; print {*STDERR} join(q{, }, @_), "\n"; } no utf8; Dump( foo => 'bar' ); #=> 'foo'(bytes), 'bar'(bytes) no utf8; だもんで,両者とも bytes なのは,まぁあたりまえ。 ところが,これを use utf8; で動かすと…… use utf8; Dump( foo => 'bar' ); #=> 'foo'(utf8), 'bar'(bytes) foo の UTF8 flag が on になってる! use utf8 にしてたので,任意の文字列リテラルが

    use utf8 環境下で => オペレータの左辺が UTF8 flag on になってしまう - daily dayflower
    cho45
    cho45 2010/03/23
    ハマった記念age
  • ゆの in yacc - daily dayflower

    パーサかませばなんでもありだな…… %{ #include <stdio.h> #include <string.h> %} %union { char *str; } %token X %token <str> STRING %type <str> face mouths left_part right_part mouth %% sayhello: face '<' STRING '!' { fputs($1, stdout); fputc(' ', stdout); fputs($3, stdout); fputc('!', stdout); fputs("\n", stdout); free($1); } face: left_part mouths right_part { $$ = malloc(strlen($1) + strlen($2) + strlen($3) + 1)

    ゆの in yacc - daily dayflower
  • ゆの in Lex - daily dayflower

    元ネタ*1がいまいちわかんないすが,id:cho45 さんに捕捉されたかったので書いてみました。 Lex なので C と絡めないと動かないところが歯がゆいところですけど。 %{ #include <stdio.h> int yywrap(void) { return 1; } %} %x BACK %x SPEAK %% [ \t]+ /* whitespaces */ "X" /* nothing */ "/" fputs("ひだまり", stdout); "_" BEGIN(BACK); <BACK>[ \t]+ /* whitespaces */ <BACK>"/" fputs("スケッチ", stdout); <BACK>"X" fputs("×", stdout); <BACK>"<" { fputs("365", stdout); BEGIN(SPEAK); } %% スタート

    ゆの in Lex - daily dayflower
  • 図解: Perl と Unicode 文字列 - daily dayflower

    id:tomi-ru さんが [http://e8y.net/mag/015-encode/:title] というとてもプラクティカルな [http://search.cpan.org/perldoc?Encode:title=Encode] 入門をお書きになったので,わたしも違う切り口で書いてみたくなりました。 いちおうの基礎(読み飛ばし可) 文字セット, キャラクタセット, 文字集合, 文字集合 - Wikipedia エンコーディング, 符号化方式, 文字符号化方式 - Wikipedia この2つは異なります。とくに知らなくても下記の文書を読むことはできますが,理解しているとためになります。くわしく知りたい人は自習してください。 文字セットの例 Unicode JIS X 0208 ひらがなとかカタカナとか漢字とか ASCII 文字 エンコーディングの例 UTF-8 ISO-202

    図解: Perl と Unicode 文字列 - daily dayflower
    cho45
    cho45 2008/06/20
  • SQL::Translator を使って,DBIC からテーブル生成 - daily dayflower

    反対に,DBIC スキーマクラスから SQL 文等を生成するには, % sqlt -f DBIx-Class -t SQLite --DBIx::Schema MySchemaClass.pmとやればよい…はずなのですが,sqlt コマンドがオプション等ってくれないので,SQL::Translator クラスをごりごり触るしかいまのところなさそうです。 #!/usr/bin/perl use strict; use SQL::Translator; my $t = SQL::Translator->new( # debug => 1, no_comments => 0, parser => 'SQL::Translator::Parser::DBIx::Class', parser_args => { package => 'MySchemaClass', }, producer =>

    SQL::Translator を使って,DBIC からテーブル生成 - daily dayflower
    cho45
    cho45 2008/03/17
  • UTF8 フラグあれこれ - daily dayflower

    UTF8 フラグについてわかってるつもりだったんですが,utf8::is_utf8 considered harmful - Bulknews::Subtech - subtech を読んで混乱したので,自分なりにまとめてみました。間違いがありましたらご指摘よろしく。 まとめ スカラー変数の内部表象の状態を示すものとして UTF8 フラグというものがある スカラー変数は(リファレンス等は別として)下記のものを格納できる (A) 文字列(内部表象: UTF-8) (B) 文字列(内部表象: ISO-8859-1) (C) バイナリ列 純粋なバイナリストリーム(画像ファイル等)かもしれないし, UTF-8 octet stream かもしれないし, CP932 octet stream かもしれないし,etc, etc ... Perl は(後方互換性確保などの理由から)ISO-8859-1

    UTF8 フラグあれこれ - daily dayflower
    cho45
    cho45 2008/02/20
  • レポジトリ・trac 生成 CGI を作る - daily dayflower

    先日の続きです。SVNParentPath と TracEnvParentDir を活用してないととくにおいしくない話です。 先日のように私用環境では Subversion のレポジトリと Trac のディレクトリの owner は apache にしてあります。このままだと新規レポジトリを作成したりするのにいちいち su apache になったりしなきゃいけないのが面倒なので,じゃあいっそウェブアプリ化してみよう,ということです。 アプローチ ぶっちゃけ Python のコードを読み書きしたのは今回が初めてなので見よう見まねです(全然 try 等で例外をキャプチャしてねー)。 Python には CGI, FastCGI, mod_python 等の差異を吸収してくれる WSGI というインタフェースがあるのですが(WSGI については後述のリンク先にある id:tokuhirom さん

    レポジトリ・trac 生成 CGI を作る - daily dayflower
  • 1