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 件のコメント:
コメントを投稿