プログラムの流れの制御 - caller関数 [基礎編]
★ すでにたくさん存在するけど、世界の面白ニュースを紹介してるサイト、
いいですよね♪ 面白サイトや面白 SNS を紹介するのもいいかも……
でも勝手にスクリーンショット撮って掲載するのって、著作権的にはどうなんでしょう?
ファイル、ディレクトリ系の関数でやり残してるのないかなぁ?
とチェックしてて、utime が出てきたんですね。
いつものように「perl, lstat関数」で検索したら、
自分のブログが出てきて、すでに学んでたことに気づきました。
ちょっとウケた(^^;)
というわけで次は、プログラムの流れの制御に関係した関数です。
最初に登場したのは caller関数なんだけど、
これがよく分かりません……。
実行してる関数名などを取得できる関数らしいのですが。
関数の呼び出し元の情報を得られるのかな……?
スカラコンテキストではパッケージ名だけ返ってきて、
リストコンテキストではサブルーチンの呼び出し元の
パッケージ名とファイル名、そして行番号が返ってくるみたいです。
あ、これは引数を渡さなかった場合です。
まずはこんなのを試してみました↓
#!/xampp/perl/bin/perl.exe
print"Content-Type: text/html\n\n";
($package, $file, $line) = caller;
print $package, "<BR>\n";
print $file, "<BR>\n";
print $line, "<BR>\n";
あれ、何も出なかった(^^;)
使い方がおかしいのかな……。
次にこちら↓
#!/xampp/perl/bin/perl.exe
print"Content-Type: text/html\n\n";
$i = 0;
while(($package, $file, $line) = caller($i++))
{
print "\$i=", $i, "->";
print join(":", $package, $file, $line), "<BR>\n";
}
これも何も表示されないから違うらしい……(-_-)
次に試したのはこちら↓
#!/xampp/perl/bin/perl.exe
print"Content-Type: text/html\n\n";
sub func_name
{
$funcname = (caller 0)[3];
print $funcname, "<BR>\n";
}
これも何も出てこない~(>_<)
ダメだ、分からない……。
また後で戻ってくることにします~。
<ご案内>----------------------------------------------------------------
ネットビジネス大百科 10,000円
----------------------------------------------------------------<ご案内>
ネットビジネス大百科 10,000円
----------------------------------------------------------------<ご案内>
こちらのページを参考にさせていただきました↓
caller | Smart-Web Magazine
ミスティーネット・Perl/CGI講座 関数検索 >> caller
caller - サンプルコードによるPerl入門
caller関数のメモ - /home/h3x/
Perlメモ/caller - Walrus, Digit.
Perl/codepiece/caller関数 - Glamenv-Septzen.net
ありがとうございました<(_ _)>
2012-05-27 16:57
nice!(0)
コメント(0)
コメント 0