2008-01-01から1年間の記事一覧

DBIモジュールのインストール

CPANで install DBI install DBD::mysql とやったら、DBIはうまくインストールできたがDBD::mysqlがダメ。 mysql_configが見つからないのようなメッセージが出たので、 http://y-kit.jp/saba/xp/cpan.htm http://www.mail-archive.com/pylons-discuss@google…

パッケージ

パッケージの役割 名前空間を定義する。 デフォルトはmainパッケージ $var = "hoge"; sub func() { print "$var\n"; } #全部同じ値にアクセスしている print "$var\n"; print "$main::var\n"; &func(); &main::func(); 他パッケージからは完全修飾名でアクセ…

ourをもう少し詳しく試してみる

ourで宣言した変数はレキシカルスコープで、パッケージに属する。 完全修飾名でなくてもアクセス可。 コメントを受けて訂正。 ourで宣言した変数はパッケージに属し、グローバル変数となる。 パッケージ外からも参照でき、block scopeの影響を受けない。 参…

コンパイルと実行

perlは、コンパイラとインタプリタが共存した仕組みになっている。まず、テキストをコンパイラがコンパイルして行き、これを「コンパイルフェーズ」と呼ぶ。コンパイルフェーズに実行を行う事も出来る。コンパイルフェーズが終ると、コンパイラはコンパイル…

英辞郎のブックマークレットをつくってみた

たまに英単語を調べる時に不便なので。 和英・英和どちらでも検索できます。 使い方*1 ツールバーで右クリックし、プロパティをクリック URLに以下のコードをコピペ 調べたい単語を選択した状態で、ブックマークレットをクリックすればOK。*2 コード javascr…

クロージャ

Perlにおけるクロージャとはスコープの外に出たレキシカル変数を参照するサブルーチンのこと。 テストコード my $closure; { my $count = 0; $closure = sub {print $count++;}; } $closure->() for (0..9); 実行結果 0123456789 つまり クロージャ使うと変…

スコープ

スコープ 宣言や動作の有効範囲。 以下の2つに大別できる(不勉強のため間違ってるかも、、、) レキシカルスコープ 構文構造のみから決定されるスコープのこと。 (実行しなくても見れば分かる) ダイナミックスコープ 実行時の関数の呼び出し関係で決定さ…

配列の書き方

テストコード use strict; use Data::Dumper;my @hoge = (1, 2, 3); my @test1 = ('hoge', \@hoge); my @test2 = ('hoge' => \@hoge);print Dumper @test1; print Dumper @test2; 実行結果 $VAR1 = 'hoge'; $VAR2 = [ 1, 2, 3 ]; $VAR1 = 'hoge'; $VAR2 = [ …

デリファレンスの記法

自分用メモ。 配列 リファレンスから、配列要素にアクセスするには $ref_array->[0] ハッシュ リファレンスからハッシュ要素にアクセスするには $ref_hash->{'key'}; サブルーチン リファレンスからサブルーチンを使うには $ref_sub->(@argv); my $ref_array…

evalを試してみる

引数の値をPerlのスクリプトとして解析し、実行します。変数の設定、サブルーチンなどの定義は、その後も有効です。返される値は、サブルーチン同様に、最後に評価した式の値か、return文の値です。 http://www.rfs.jp/sb/perl/05/eval.html ということは、…

PerlでFastCGIにTry!

Apache, Perl, FastCGIの組み合わせで、ちょっとしたアプリを書いてみようと思う。 OSはDebian。以下、メモ。 1.Apacheのインストール # apt-get install apache # apt-get install apache-dev 2.mod_fastcgiの組み込み # wget http://www.fastcgi.com/dist/…