タグ

perlに関するzetfsのブックマーク (43)

  • はてなブログ | 無料ブログを作成しよう

    今の自分は、出会った人や読んできたによって、できあがっている あの小冊子は、新聞の付録だったのか、記憶が曖昧で定かではないのだが、1ヶ月に1回程度の頻度で届いていた気がする。オールカラーで内容もさまざまだった気がする。その中には、プロ野球の選手名鑑もあって、私は、母から受け取り、大切にしていた記憶がある。母は、…

    はてなブログ | 無料ブログを作成しよう
  • s-jisコードで書かれたCGIの文字化けについて

    ここで都合の悪いことが発生します。実は、「表」の2バイト目の「5C」に問題があるのです。 「5C」とはメタ文字(特殊文字)の「¥」の文字コードと重複するのです(Shift-JISの場合)。 「¥」が文字列中にあると、コンピュータはこれをエスケープ記号として解釈し、次のように取り去って表示してしまうのです。 (1) 95 5C 8E A6 ... 記述時点 (2) 95 8E A6 ... 「5C」を「¥」と解釈し取り去る(その次の8Eをエスケープすると解釈) (3) 95 8E A6 ... 展開結果 このようにして、展開結果は以下のようなコードで出力されることになります。 文字

    zetfs
    zetfs 2014/02/13
    プログラム:文字化け
  • DBIx::Class::Schema::Loader で 34 秒くらいで Schema クラス生成 - IT戦記

    既存 DB から以下のワンライナー一発で DBIx::Class の Schema が生成できる $ perl -MDBIx::Class::Schema::Loader=make_schema_at,dump_to_dir:./lib -e 'make_schema_at "Hoge::Schema", {relationships => 1, debug => 1}, ["dbi:mysql:hoge","user","password"]' やりかた。 まず、クラスを作りたいディレクトリ付近に移動 さっきのコマンドの dump_to_dir: の箇所にクラスツリーの起点となるディレクトリを指定 make_schema_at の第一引数に生成する Schema のパッケージ名を指定 外部キー制約とかを考慮して has_many とか belongs_to とかを自動で設定して欲しい場合

    DBIx::Class::Schema::Loader で 34 秒くらいで Schema クラス生成 - IT戦記
  • C/C++・PHP・PerlからAxis2/Javaの配列を入出力にしたSOAPサービスを呼び出す例 - drambuieの日記

    Axis2/Javaのサーバ側 以降は、以下のようなサービスechoStringArrayをAxis2/Javaで作成した場合の話になります。 以下がサーバ側の処理で、これを呼び出すクライアント側の処理をC/C++PHPPerlで作成する。C/C++は今回はVC++で。 public class ArrayTest { public String[] echoStringArray(String[] param) { return param; } } Axis2/Cでスタブを生成して、C/C++で、Axis2/JavaのSOAPサービスを呼び出す。 Axis2/Cのインストール 今回はコンパイル済みのMS Windows Distributionを使用した。 ZIPファイルをダウンロードして、適当なディレクトリに展開する。 Apache Axis2/C - Apache Axis2/

    C/C++・PHP・PerlからAxis2/Javaの配列を入出力にしたSOAPサービスを呼び出す例 - drambuieの日記
    zetfs
    zetfs 2012/09/10
    [soap::lite]配列
  • 第6回 Catalyst::Upgrading:検証はお早めに | gihyo.jp

    3年前の大混乱 モダンPerl界を代表するウェブアプリケーションフレームワークといわれるCatalystが2006年半ばに5.6系統から5.7系統に移行したとき、創始者のゼバスティアン・リーデル氏を追い出す形で集団管理体制に移行した開発チームが最初にしたことは、プロジェクト開始当初から使われてきたCatalystという名のディストリビューションはそのままに、Catalyst-Runtimeという新しいディストリビューションをつくることでした。 このようなディストリビューション名の変更は、CPANクライアントを使っている分には(内部でモジュール名からディストリビューション名への変換が行われるので)問題にならないのですが、外部のパッケージ管理者たちには少なからぬ負担をかけました。なにしろ突然100を越す関連パッケージの依存が変更になるのです。基的にはメタ情報だけ書き換えれば済む話とはいえ、従

    第6回 Catalyst::Upgrading:検証はお早めに | gihyo.jp
  • Perl でローカルのアドレスを取得する - naoyaのはてなダイアリー

    ifconfigの出力をsedでパース — ありえるえりあ まだ Linux を触り始めて間もない頃に、サーバーを構築していてローカルの IP アドレスをシェルスクリプトから利用する必要があって、どうやって取得するべきだろうかと小一時間悩んだのですが結局分からず Perl の正規表現で ifconfig を parse したことがありました。ioctl() を使ってデバイスを操作する必要がある、ということを知ったのは数年後、割と最近のことです。なんということでしょう。 では、Perl で IP アドレスを取得する場合ですがモジュールを使ってよいのであれば IO::Interface がよいだろうと思っています。IO::Interface は Pure Perl ではありませんが、XS で ioctl() を呼び出しているので比較的高速且つ素直な実装だと思います。 #!/usr/local/

    Perl でローカルのアドレスを取得する - naoyaのはてなダイアリー
    zetfs
    zetfs 2011/10/18
    ローカルのアドレスを取得
  • XML::LibXMLで(とりあえず)XMLをパースする - あまやん胸いっぱい

    これまでXML::TreePPにべったりだった私。最近はXMLの要素指定にXPathを使うのが主流?らしいので、その練習がてら使ってみることにしました。 インストール 検索するとみんな苦労しているインストール。まずはいろんなライブラリを入れないといけない。 僕の環境(Fedora 7 + Perl5.8.8)ではこんな感じでインストール。 $ su - # yum -y install libxml # yum -y install libxml-devel # yum -y install libxml2 # yum -y install libxml2-devel # yum -y install libxml++ # yum -y install libxml++-devel # cpan -fi XML::LibXML なんつーかもう、片っ端から放り込んだ感じですが・・・ サンプル

    XML::LibXMLで(とりあえず)XMLをパースする - あまやん胸いっぱい
    zetfs
    zetfs 2011/09/16
    perl xml パース
  • threads - インタプリタスレッドの使用を可能にするPerl拡張 - perldoc.jp

    名前¶ threads - インタプリタスレッドの使用を可能にするPerl拡張 概要¶ use threads; sub start_thread { print "Thread started\n"; } my $thread = threads->create("start_thread","argument"); my $thread2 = $thread->create(sub { print "I am a thread"},"argument"); my $thread3 = async { foreach (@files) { ... } }; $thread->join(); $thread->detach(); $thread = threads->self(); $thread = threads->object( $tid ); $thread->tid(); thr

  • Perlでマルチスレッド

    2003年3月15日 (土) - Perl ithreads 休日なので、 Perl 5.8.0のマルチスレッドプログラミングで遊ぶ。 use v5.8.0; use strict; use threads; my $thread1 = threads->new(\&main, "One"); my $thread2 = threads->new(\&main, "Two"); $thread1->join; $thread2->join; print "done.\n"; sub main { my ($name) = @_; for (1..10) { print "I am $name ($_)\n"; threads->yield(); } } 以下が実行例。 I am One (1) I am One (2) I am Two (1) I am One (3) I am Two

  • Catalystで知ったこと - Perl日記

    PerlフレームワークCatalyst完全入門 作者: 山田祥寛出版社/メーカー: インプレスジャパン発売日: 2010/05/20メディア: 単行(ソフトカバー)購入: 8人 クリック: 214回この商品を含むブログ (18件) を見る 買って読み始めたので、知ったことメモ。 フォームデータの取得 今まで。 my $id = $c->req->param('id'); ただしこれだと、 しかし、paramメソッドはクエリ情報→ポストデータの順で値の取得を試みます。このため、クエリ情報/ポストデータの間で同名のパラメータがあった場合、意図しないデータを取得してしまう恐れがあるのです。 (P76) なるほど。 これを避けるために、とても丁寧に記述するなら、こう。 # POST データ my $id = $c->req->body_params->{'id'}; # GET データ my $

    Catalystで知ったこと - Perl日記
  • DBIx::Classで検索方法色々 - 森のクマさんがプログラムし始めた

    今更ながらにDBIx::Classを使ってみた。 その時に勉強した検索方法色々。 # IDを指定して検索 $db->resultset('table')->find(ID); # 条件を指定して検索 $db->resultset('table')->search({ flg => 1, }); # and検索 $db->resultset('table')->search({ flg => 1, id => 2, }); # or検索 $db->resultset('table')->search({ -or => [ flg => 1, id => 2, ] }); # andとorの組み合わせ $db->resultset('table')->search({ -or => [ { flg => 1, id => 2, }, flg => 2, ] }); # 不等号とか $db->r

    DBIx::Classで検索方法色々 - 森のクマさんがプログラムし始めた
  • Perl/DBIC - Nekokak's core dump

    VERSION-0.05000での記述。http://search.cpan.org/~mstrout/DBIx-Class/ ドキュメントも当初に比べれば増えてきたし、そっち見たほうがよかばい。 まあ以下は簡単なまとめで。一通り使えるくらいは書きたい。 このサイトはWikiなので途中途中に色々追加したり修正したりしますからご注意を DBIx::Class::Schemaを使ってみる これからDBICではSchemaメインらしい。 使うテーブル作成SQL create table user ( id int(10) NOT NULL auto_increment, name varchar(256) NOT NULL, PRIMARY KEY (id) ) ENGINE = InnoDB;

  • 10分(?)で出来るDBIx::Class の導入|プログラムメモ

    ■1. DBIx::Classのインストール 例によってCPANコマンドでインストールします。 unixのシェルから perl -MCPAN -e shell cpan > install DBIx::Class cpan > install DBIx::Class::Schema::Loader でOK。 (何か入力が促されたらそのままEnterを押せばいいです) ■ 2.テーブルスキーマの自動生成 unixのシェルでプログラムを作成するディレクトリに移ってから perl -MDBIx::Class::Schema::Loader=make_schema_at,dump_to_dir:./lib -e 'make_schema_at "Hoge::Schema", {relationships => 1, debug => 1}, ["dbi:mysql:hoge","user","pa

    zetfs
    zetfs 2011/06/29
    1対多リレーション
  • TemplateToolkitをより早く!!・・・できなかったorz - マツモブログ

    ティーティーのさぁーディスクアイオー減らしたら早くなるんじゃね? と言った事を思い立ちやっては見たものの、ごめんなさい、見くびってました、出直して来ます。 というお話を晒させていただきます。 まず、何かと言いマスト TemplateToolkitのオプションでCOMPILE_DIRというのが有ります。これは強力でTTの文法で書いたテンプレートをperlのコードに書き下してくれるというやつです。よって一回コンパイルしてくれると次回からはパースせずとの良い!速い!という訳であります。 ↓このへん参照。 http://search.cpan.org/~abw/Template-Toolkit-2.19/lib/Template/Document.pm で、コンパイルされた結果がCOMPILE_DIRで指定したパスに溜まってゆくと。 例えば Template->new(ABSOLUTE => 1,

    TemplateToolkitをより早く!!・・・できなかったorz - マツモブログ
    zetfs
    zetfs 2011/06/21
    COMPILE_DIR CACHE_SIZE
  • forwardとdetachとvisitとgo - Perl日記

    まだまだCatalyst。 Controllerクラスで、$c->forward()と$c->detach()は、制御が帰ってくるかどうか(返ってくるかどうか)の違いだと覚えていた。 まあそれはあっているんだけれど、他にも違いがあった。 Controller/Login.pm sub index :Path :Args(0) { my ( $self, $c ) = @_; $c->forward('/login/form'); # or # $c->detach('/login/form'); } sub form :Local { my ( $self, $c ) = @_; $c->stash->{message} = 'ok!'; } root/login/form.tt <html>[% message %]</html> この状態で「/login/」にアクセスすると、以下のエラ

    forwardとdetachとvisitとgo - Perl日記
    zetfs
    zetfs 2011/06/13
    forward
  • catalyst [paulownia.jp]

    以下のはろーわーるどセットアップ手順はCatalyst知識ゼロの状態の人間が実際に動かしながら書いているため、間違いが多数あるかもしれません。注意してください。 OSはCentOS5。GCCが入ってなければ場合は先に入れておけ。あとmysqlも # yum intall gcc # yum intall gcc-c++ # yum install mysql # yum install mysql-server mysql-serverと同時にインストールされるBD::mysqlはバージョンが多少古いが、Catalystをインストールするときに上書きされるので気にしない。 このサイトからcat-installスクリプトを拾って実行。CPANでCatalyst::Develをインストール。 # perl cat-install # perl -MCPAN -e 'install Cataly

  • おいぬま日報(不定期) - Apache2 + mod_perl2.0.1 + Sledge-1.11

    @ [perl] Apache2 + mod_perl2.0.1 + Sledge-1.11 今週頭からずっとインストールにてこずっていたのですが、昨日朝方までかけてなんとかHello world!を出すところまでたどり着きました。 環境はDebian sarge + Apache 2.0.54です。Apacheはdebからインストールしている状態です。perlとmod_perlとlibapreqとSledgeはここで野良ビルドしてインストールします。 まずはperlのインストールから。http://cpan.org/src/README.htmlよりstableである5.8.7をダウンロードして解凍します。 $ tar xvzf stable.tar.gz $ cd perl-5.8.7 $ sh Configure -Dusethreads -Duselargefiles \ -Dus

  • http://www.ksknet.net/perl/perl_1.html

    For full functionality of this site it is necessary to enable JavaScript. Here are the instructions how to enable JavaScript in your web browser.

    zetfs
    zetfs 2011/02/09
    日付比較
  • Catalyst::Plugin::I18Nで国際化 with Template-Toolkit(Catalyst::View::TT) - ヒルズで働く@robarioの技ログ

    前回のCatalyst+Template-Toolkit(Catalyst::View::TT)で国際化 - ヒルズで働く@robarioの技ログはCatalyst::Plugin::I18Nでできるよとのコメントをいただきましたので、それでやることにしました。 Catalyst::Plugin::I18Nで国際化 lib/MyApp/L10Nではなく lib/MyApp/I18N を用意します。 lib/MyApp/I18N/en.pm package MyApp::I18N::en; use base qw(MyApp::I18N); our %Lexicon = ( '_AUTO' => 1, ); lib/MyApp/I18N/ja.pm package MyApp::I18::ja; use base qw(MyApp::I18N); our %Lexicon = ( '_AUT

    Catalyst::Plugin::I18Nで国際化 with Template-Toolkit(Catalyst::View::TT) - ヒルズで働く@robarioの技ログ
    zetfs
    zetfs 2011/02/07
    英語版・日本語版切り替え
  • Catalyst+Template-Toolkit(Catalyst::View::TT)で国際化 - ヒルズで働く@robarioの技ログ

    はてぶコメントより、typesterさん曰くCatalyst::Plugin::I18N - I18N for Catalyst - metacpan.orgでできるよとのこと。お〜。名前は昔見たことがあったのですが中身まで見てませんでした。今回の話(と次に書こうと思っていた話)のほとんどがCatalyst::Plugin::I18Nに含まれていますね。Template周りをちょこっといじるだけで良さそうです。コメント当にありがとうございました。助かります。 このエントリは「Locale::Maketextの使い方」ということでお願いします。 はじめに 同じ内容のページを、ユーザの環境に応じて英語版と日語版を切り替えたい。という話です。 よくある「使用するテンプレートを言語毎に用意する」という方法では、英語版テンプレートと日語版テンプレートの同期を取るのが非常に面倒になります。そこで

    Catalyst+Template-Toolkit(Catalyst::View::TT)で国際化 - ヒルズで働く@robarioの技ログ
    zetfs
    zetfs 2011/02/04
    英語版・日本語版切り替え