Beh intanto se @cn[$length-$k] è un elemento dell'array e non l'array stesso dovrebbe essere scritto: $cn[$length-$k] poi se sono stringhe l'operatore da usare non è "!=" ma "ne".

Comicerei col provare a fare queste variazioni, in particolare il ne, poi se ancora non funge vediamo...