my $rd = int( rand(100000)) + 999999; my $filename = "XYZ12345_X05_20110805_9999999_00001.TXT"; #my $filename = "XYZ12345_X05_20110805_9999999.TXT"; #add dash between $3 and $4 to the .txt before processing them::: #pad $2 with 0s #replace the end of the file with a randon number if the filename ends with _00001 (my $xrenamed = $filename) =~s/(^\w{3})(\d{5,7})(_\w{1})(\w{1,2}_)(\d{8}\_)(.*)/$1.sprintf("%07d",$2).$3."-".$4.$5.$rd.".txt"/ie; # print "\n\nFILE = *1- $1 * 2 - $2* 3 - $3* 4 - $4* 5 - $5* 6 - $6* - $xrenamed\n\n";