for($i = $self->{'Count'}; $i > 1; $i--) { $j = $i - 1; $next = "${currn}." . $i . $ext; $prev = "${currn}." . $j . $ext; if ( -r $prev && -f $prev ) { move($prev,$next) ## move will attempt rename for us or croak "error: move failed: ($prev,$next)"; } } #### use POSIX qw(strftime); @t = localtime; $\ = "\n"; print strftime("%Y%m%d%H%M%S", @t); # logfile_20040914151753 print strftime("%Y%m%d-%H%M%S", @t); # logfile_20040914-151753 print strftime("%Y-%m-%d-%H%M%S", @t); # logfile_2004-09-14-151753 print strftime("%Y-%m-%d@%H-%M-%S", @t); # logfile_2004-09-14@15-17-53