my $prefix = '/yourapp/index'; my $userid = ...; my $idx = substr $userid, 0, 3; my $limitReach = 1; { opendir DIR, "$prefix/$idx/$userid/" or die $!; my $count = readdir DIR; last if $count >= LIMIT; rename "$prefix/$idx/$userid/$count", "$prefix/$idx/$userid/" . $count + 1 or redo; $limitReached = 0; } ## use $limitReached to decide further action