sub enum (\@$$){ ... } use feature 'state'; while ( enum @a => state $value, state $i ){ print "enum: $i $value\n"; }