%titles = {}; sub add; add "foo"; add "bar"; add "bar"; sub add { my $t = $_[0]; my $k=$t; my $seq=1; while (exists($titles{$k})) { $k=$t..$seq; $seq+=1; } $titles{$k}=1; print "added $k\n"; }