SSブログ

プログラムの流れの制御 - 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";
}

これも何も出てこない~(>_<)

ダメだ、分からない……。
また後で戻ってくることにします~。


<ご案内>----------------------------------------------------------------

daihyakkaB.jpg

ネットビジネス大百科 10,000円

----------------------------------------------------------------<ご案内>



こちらのページを参考にさせていただきました↓
caller | Smart-Web Magazine
ミスティーネット・Perl/CGI講座 関数検索 >> caller
caller - サンプルコードによるPerl入門
caller関数のメモ - /home/h3x/
Perlメモ/caller - Walrus, Digit.
Perl/codepiece/caller関数 - Glamenv-Septzen.net
ありがとうございました<(_ _)>




nice!(0)  コメント(0) 

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。