#!/usr/bin/perl use strict; use warnings; sub TIESCALAR { my $class = shift; bless [-1 => [@_]] => $class; } sub STORE {die} sub FETCH { ${$_ [0]} [1] [${$_ [0]} [0] ++ % @{${$_ [0]} [1]}]; } tie $" => main => ":", "-"; my @a = qw /0 1 0 1 0 1 0 1 0 1 0 1/; print "@a\n"; __END__ 0:1-0:1-0:1-0:1-0:1-0:1