sub id2path { my $id = shift; # allow ID 0; disallow 12.34 $id =~ m/^\d{1,9}$/ or return q(); my $n = length($id) > 6 ? 3 : 2; $id = sprintf '%0*s', 3 * $n, $id; $_ = "/$_/" for substr($id, $n, $n); # or: substr($id, $_, 0, '/') for -2*$n, -$n; return $id; }