2013年3月18日月曜日

静的変数

Perlで静的変数(C言語でいうところのstatic変数)を使用するには、stateを使用します。
Perlのバージョン5.10以降の機能なのでuse 5.010を付けることに注意が必要です。
また、バージョン5.14時点ではstateを配列(リスト)や辞書(ハッシュ)につけることはできないようです。



#!/opt/local/bin/perl
use warnings;
use 5.010;

print "号令!\n";
while (my $line = <STDIN>) {
if (!defined($line)) { last; };
&marine;
}

sub marine {
state $sailor_number = 0;
$sailor_number++;
print "I'm sailor $sailor_number!\n";
}



結果は以下のようになります。


号令!

I'm sailor 1!

I'm sailor 2!

I'm sailor 3!

I'm sailor 4!

I'm sailor 5!

I'm sailor 6!

I'm sailor 7!





0 件のコメント:

コメントを投稿