イテレータはオブジェクトインターフェースの一つで、nextメソッド等でオブジェクトが保持する次の要素を必要な時に取得することができるものです。リスト自体が巨大であったり、リストの生成に時間がかかる場合や、必要となるリストや要素についての情報がわからない場合に、必要量だけ取得できるのがイテレータの利点です。 最小値と最大値を指定されたリストを生成し、イテレータで順にその値を取得するオブジェクトの実装について考えてみます。 my $it = upto(7, 11); $n = NEXTVAL( $it ); # $n == 7 push @a, NEXTVAL( $it ) for 1..3; # @a == (8,9,10) $x = NEXTVAL( $it ); # $x == 11 # この時点で$it == undefined unless (defined NEXTVAL( $it