printf("%06d\n",$_) for (123, 1234, 12345, 123456); my $val = sprintf("%06d",123); #### my $name = '012345'; my ($three) = $name =~ /^(\d\d\d)/; #### use strict; while () { chomp; my ($numbs) = $_ =~ /^(\d+)/; my $formatted = sprintf("%06d",$numbs) . '.jpg'; my ($dir) = $formatted =~ /^(\d\d\d)/; print "filename: $formatted\t\tdirname: $dir\n"; } __DATA__ 123.jpg 1234.jpg 12345.jpg 123456.jpg