内容へ移動
Cat Paw Software
ユーザ用ツール
ログイン
サイト用ツール
検索
ツール
文書の表示
以前のリビジョン
バックリンク
最近の変更
メディアマネージャー
サイトマップ
ログイン
>
最近の変更
メディアマネージャー
サイトマップ
トレース:
perl
この文書は読取専用です。文書のソースを閲覧することは可能ですが、変更はできません。もし変更したい場合は管理者に連絡してください。
====== perl ====== * [[catalyst]] * [[perl:cgi_application_dispatch|CGI::Application::Dispatch]] ===== ちょっとした技 ===== カレントディレクトリ以下のpmファイルをまとめてperl -wcする $ find . -name "*.pm" -exec perl -wc {} \; Catalystのプロジェクトディレクトリではこんな感じで打つと自作モジュールも含めてlib以下のモジュールを一度に検査できる $ find . -name "*.pm" -exec perl -Ilib -wc {} \; ==== 四捨五入 ==== 0.5を足してintで良い筈 <code perl> # 税込み価格 int($price + $price * $tax_rate + 0.5); </code> ===== CPAN ===== CPAN設定、cpanシェルを起動して以下の操作、全部せっていするなら CPAN> o conf init 個別に設定するなら CPAN> o conf で何が設定できるか見れる ==== ミラー ==== ftp.cpan.orgは遅い、遅すぎる。 CPAN> o conf urllist 何かCPANミラーのURL ミラーはここから探せ http://mirrors.cpan.org/ ==== 手動で入れる ==== サーバにインストールせずに使いたい、サーバにインストールできない場合、 Cモジュールを使ってなければ、適当な場所において use lib ... で動く。 CSV_XSみたいなCモジュールを使っているものは、CPANからtar.gzをダウンロードして展開 perl Makefile.PL PREFIX=/適当なパス make make install 上の例ならば 適当なパス/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/ にモジュールが設置される。このディレクトリ以下を丸ごとコピーするなり直接 use lib するなりお好きなようにやる。サーバでmakeが使えない場合でもOSとCPU種類が同じ別のマシンでコンパイルすれば大抵動く。依存モジュールがたくさんある場合は頑張る、もしくは諦めて違う方法を考える。 ===== モジュールのバージョン確認 ===== C:\>perl -mXML::RSS -le "print XML::RSS->VERSION" とか ===== Perldoc ===== ==== ドキュメントを読む ==== perldoc -l XML::RSS 自分のコードでもpod形式で書いておくとperldocで閲覧できるので、モジュールやサブルーチンの説明はperldocで書こう。 ==== モジュールのパスを調べる ==== perldoc -l XML::RSS ==== モジュールのソースコードを見る ==== perldoc -m XML::RSS ページャはデフォルトでmore、ページャを指定するには環境変数PAGER、MANPAGER、PERLDOC_PAGERのどれかで指定。 ===== 配列とリファレンス ===== リファレンスってなあに?という人はらくだの本とか読んで。 <code perl> # 配列 @hoge = (1,2,3,4,5,6); for ($i = 0; $i < scalar(@hoge); $i++) { print $hoge[$i] , "\n"; } # 配列のリファレンスを取得 $fuga = \@hoge; for ($i = 0; $i < scalar(@$fuga); $i++) { # 参照先の[$i]を取得 print $fuga->[$i]; # 実体にアクセスし、配列としてアクセス print $$fuga[$i] , "\n"; } # リファレンス先のの実体を配列としてアクセス @piyo = @$fuga; for ($i = 0; $i < scalar(@piyo); $i++) { print $piyo[$i] , "\n"; } # 配列へのリファレンスを作る $puni = [1,2,3,4,5,6]; for ($i = 0; $i < scalar(@$puni); $i++) { print $puni->[$i]; print $$puni[$i] , "\n"; } </code> ===== リファレンス ===== <code perl> # 実配列 @array = (); @array = (1,2,4,5); # 配列リファレンス $ref_array = []; $ref_array = [1,2,3,4,5]; # 配列のリファレンスを取得 $ref_array = \@array; print ref $ref_array; # ARRAYと出力 $ref_array = [@array]; print ref $ref_array; # ARRAYと出力 # 配列要素にアクセス $ref_array->[0]; # リファレンスを配列として扱いたいとき(push等のリスト操作関数に渡したいとき)はアタマに@を付けて push @$ref_array, 6; </code> <code perl> # 実ハッシュ %hash = (); %hash = (a => "hoge", b => "fuga"); # ハッシュリファレンス $ref_hash = {}; $ref_hash = {a => "hoge", b => "fuga"}; # ハッシュ要素へのアクセス $ref_hash->{a}; # ハッシュのリファレンスを取得 $ref_hash = \%hash; print ref $ref_hash; # HASHと出力 $ref_hash = {%hash}; print ref $ref_hash; # HASHと出力 # ハッシュとして扱う keys %$ref_hash; </code> <code perl> my $hoge = 3; my $ref_sub = sub { return $_[0] * $hoge; }; print &$ref_sub(4); # 12と出力 </code> 無名サブルーチンでクロージャが作れる
perl.txt
· 最終更新: 2010/01/25 08:07 by
127.0.0.1
ページ用ツール
文書の表示
以前のリビジョン
バックリンク
文書の先頭へ