my $from_name; my $to_name; if (-e "${to_dir}/${base_name}.jpg"){ for (my $i=8; $i >= 0; --$i){ my $ext = ($i ? ".$i" : ''); $from_name=$to_dir.'/'.$base_name.$ext.'.jpg'; $to_name =$to_dir.'/'.$base_name.'.'.($i+1).'.jpg'; rename_and_log($from_name, $to_name) if (-e $from_name); } } #### my $from_name; my $to_name; if ( -e "${to_dir}/${base_name}.jpg"){ my $i=0; $i = map { /$base_name\.(\d)\.jpg/; $i=$1 > $i ? $1 : $i } <$base_name.?.jpg>; $i = $i > 8 ? 8 : $i; for my $index (reverse (0..$i)){ my $ext = $index ? ".$index" : ''; $from_name =$to_dir.'/'.$base_name.$ext.'.jpg'; $to_name =$to_dir.'/'.$base_name.'.'.($index+1).'.jpg'; rename_and_log($from_name, $to_name); } }