Perl Tips
リスト(配列)の要素数を得る
@array = (1,2,3); $elemNum = @array; print $elemNum;
Apache2 for Windows にmod_perlをインストール
$ cd c:/perl/bin ↑※これが重要(他の場所だとエラーになる) $ ppm.bat install 'http://theoryx5.uwinnipeg.ca/ppms/mod_perl.ppd' ↑※Apacheの場所を聞かれるので,入力する. このときにProgram Filesなどと空白があるフォルダだと,エラーになる..そして,conf/httpd.confに
LoadModule perl_module modules/mod_perl.so
を追加.
また,startup.plに
use Apache2();
を追加.
サブルーチン(関数)のプロトタイプ宣言を使う
サブルーチンを定義するときに,サブルーチン名の後に丸括弧をつけて,
その中に$(ダラー)や@(アットマーク)を書くことで, 引数として何を受け取るかを明示的に指定することができます.
#ただし,確実にインタプリタが文法チェックをやってくれるわけではない?(よくわかりません)
スカラ変数を2つ受け取るサブルーチン
sub hoge($$)
{
my ($param1, $param2) = @_;
}
配列を2つ受け取るサブルーチン
※配列の場合\ (バックスラッシュ)をつけないと,最初の配列にまとめられてしまうらしい
sub hoge(\@\@)
{
my (@param1, $param2) = @_;
}
このサイトに説明が詳しく書いてあります.
http://www.rfs.co.jp/sitebuilder/perl/02/07.html
「$$変数」は,変数のリファレンス変数
「$$変数」は,C言語で言うポインタと同じ原理で用います.$hoge = 123; # 普通の変数 $pHoge = \$hoge; # 変数への参照アドレスをもつ変数 print "$$pHoge\n";# 参照している変数の中身を表示これをC言語で書くと,
int hoge = 123; // 普通の変数
int *pHoge = &aa; // 変数への参照アドレスをもつ変数
printf("%d\n", *pHoge); // 参照している変数の中身を表示
となります.
「@$hoge」は,配列のリファレンス変数
「@$hoge」は,配列のリファレンス(Cでいうポインタ)を扱うときに使います.
補足(['hoge', 'hoge2', 'hoge3']は,配列のリファレンス)
次のような,ブラケットで囲まれたリストは,配列のポインタを返します.$hoge = ['a', 'b', 'c'];つまり,次のコードと同じです.
@array = ('a', 'b', 'c');
$hoge = \@array;
実際にどうなっているかは,次のコードを実行してみれば分かると思います
@array = ('a', 'b', 'c', 'd', 'e');
$pArray = \@array;
print $pArray->[1] . "\n"; # 参照している配列の1番目の中身
print $pArray . "\n"; # 参照している配列のアドレス
print @$pArray . "\n"; # 参照している配列の要素数
$pArray2 = ['hoge', 'hoge2'];
print $pArray2->[1] . "\n";# 参照している配列の1番目の中身
print $pArray2 . "\n"; # 参照している配列のアドレス
print @$pArray2 . "\n"; # 参照している配列の要素数
push (@$pArray2, 'hoge3'); # 参照している配列の最後(2番目(0から数えて))に追加
print $pArray2->[2] . "\n";# 参照している配列の2番目を表示
実行結果は以下のとおり$ perl -w hoge.pl b ARRAY(0x17242f8) 5 hoge2 ARRAY(0x275008) 2 hoge3
作成日: 2005年12月21日15時03日22秒
![[トップページ]](../lib/img//top.gif)
![[一覧]](../lib/img//list.gif)
![[検索]](../lib/img//search.gif)
![[ヘルプ]](../lib/img//help.gif)
![[ログイン]](../lib/img//login.gif)