2008-03-26から1日間の記事一覧
% cd /usr/include; h2ph *.h */*.h
使用しているシステムに固有のC関数にPerlからアクセスしたい。 h2xsツールを使用する % perl Makefile.PL % make
自分のモジュールにおいてレキシカルな警告に関する呼び出し側の設定を重視してそれに対応する処理を行いたいが、それらの設定を確認しようと思っても、前もって定義されている$^W変数の値を検査することができない。 use warnings::register;
実行時にならないと名前のわからないパッケージに含まれている変数や関数を参照する必要がある。ただし、$packname::$varnameのような構文は不正である。 シンボリックリファレンスを使用する。 { no strict "refs"; $val = ${ $packname . "::" . $varname …
現在のパッケージだけでなく、自分のプログラム全体に含まれている主要な組み込み関数の定義を変更する必要がある。 シンボルテーブルを直接操作することによって、CORE::GLOBALと言う疑似パッケージに関数を手動でインポートする。 *CORE::GLOBAL::int = \&…
自分のモジュールでエラーと警告を生成する。しかし、warnまたはdieを使用すると、自分自身のモジュールのファイル名と行番号が出力される。ユーザのコードに基づいてメッセージが出力されるようにしたい。 標準モジュールCarpを使用する。 warn -> carp die…
標準的な組み込み関数を独自のバージョンに置き換えたい。 該当する関数を別のモジュールから自分自身の名前空間にインポートする。 関数の定義 package Time::HiRes; use strict; require Exporter; use vars qw(@ISA, @EXPORT_OK); @ISA = qw(Exporter); @…
h2xsツールを使用して、必要なディレクトリと全てのファイルを作成する。 % h2xs -Xn Sample % cd Sample % perl Makefile.PL LIB=~/perllib % (Sample.pmを編集する。) % make install