printf + escape code

Could someone help to explain why the second column is not formatted with the correct width when escape codes are used? $ perl -e 'printf ":%-20s:%-20s:\n", "string1", "\e[32mstring2\e[m"'