use Win32API::File qw[ MoveFile ]; my $i=0; $i++ until MoveFile( $source, compose_name( $base, $ext, $i ) );