http://www.perlmonks.org?node_id=1063362


in reply to Can you make it nicer?

I'm a little nervous to comment... I hope this won't offend anyone...
IMVHO I think the clearest code is rminner's code.
IMVVHO The 2nd clearest is ... oh look over there, a spider ... *whispers* the original code.
IMVVVHO Both make it very clear what the 2 different cases are, and what to do for each of them.

I like to line things up to help highlight the similarities and differences, so I might write it like this:
sub id2path_new { my ($id) = @_; return '' unless $id; my $path = ''; if ($id >= 1_000_000) { $path = sprintf("%09d", $id); $path =~ s +#\A(.*)(...)(...)\z#$1/$2/$3#; } else { $path = sprintf("%06d", $id); $path =~ s +#\A(..) (..) (..)\z#$1/$2/$3#x; } return $path; }