#!/usr/bin/perl -w use strict; use warnings; sub NEXTVAL { $_[0]->() } sub make_rand { my $x = 0; return sub { return $x++; }; } my $rng = make_rand(); for my $i (1..4) { my $x = NEXTVAL ( $rng ); print "$x\n"; }