永続的なプライベート変数のテスト
永続的なプライベート変数のテスト
use strict; use warnings; use 5.010; my $n; sub marine1{ $n++; print "Hello$n "; } sub marine2{ state $e = 0; print "Hello $e"; $n += 1; } marine1; marine1; marine1; marine1; marine1; marine1; marine1; print " \n --------------- \n"; marine2; marine2; marine2; marine2; marine2; marine2; marine2; print " \n --------------- \n"; sub running_sum{ state $sum = 0; state @numbers; #初期化することができません。 foreach my $number(@_){ push @numbers, $number; $sum += $number; } say "the sum of (@numbers) is $sum"; } running_sum(5,6); running_sum(1..3); running_sum(4);
以下がテストコードの出力結果です。
Hello1 Hello2 Hello3 Hello4 Hello5 Hello6 Hello7
---------------
Hello 0Hello 0Hello 0Hello 0Hello 0Hello 0Hello 0
---------------
the sum of (5 6) is 11
the sum of (5 6 1 2 3) is 17
the sum of (5 6 1 2 3 4) is 21