I'm not sure this makes a difference performance wise, but here's another way to do the same thing. Use the 'unpack' built-in function to separate the 1st character from the number, increment the number, and then use sprintf (as someone else suggested) to reformat the id:
my $old_id = "I000199";
my ($char, $num) = unpack("A1A6", $old_id);
$num += 1;
my $new_id = sprintf "%s%06d", $char, $num;
HTH.