allora per farmi capire meglio prova:

print "cn: ",$cn[$length-$k]," k: $k len: $length\n";
print "sub: ",substr($xxx,$vn[$length-$k],1)," xxx: $xxx vn: ",$vn[$length-$k],"\n";
if(...)...