Skip to content

Instantly share code, notes, and snippets.

@mfollett
Created September 13, 2010 02:55
Show Gist options
  • Save mfollett/576739 to your computer and use it in GitHub Desktop.
Save mfollett/576739 to your computer and use it in GitHub Desktop.
my $stream;
{
my $previous = 0;
$stream = sub { $previous++ };
}
my $limited_stream;
{
my $previous = 0;
$limited_stream = sub { return $previous if $previous++ < 10; return; };
}
my $limited_even_stream;
{
my $previous = 0;
$limited_even_stream = sub { return $previous if(($previous+=2) <= 10); return; };
}
sub say_numbers_in_stream
{
my $stream = shift;
while( defined (my $val = $stream->() ) )
{
say "We've reached number $val!";
}
}
say_numbers_in_stream($limited_stream);
say_numbers_in_stream($limited_even_stream);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment