#!/usr/bin/perl use strict; use warnings; my @array = 0 .. 30; my $interval = make_interval(); for my $val ( @array ) { &$interval( 4); $val = "--"; }; local $, = " "; print @array, $/; sub make_interval { my $ctr = 0; my $start = 1; return sub { if ( $start) { $start = 0; return } $ctr++; if ( $ctr == $_[0]) { $ctr = 0 } else { no warnings; next } } }