Perl, 45 byte
;print$_=<>,~~reverse;m;esrever~~,><=_$tnirp;
Abbastanza semplice, printè l'input ( $_=<>) seguito dal reversesuo. reverseritorna $_perché lo stiamo usando in un contesto scalare prefissando con ~~. Quindi abbiniamo ( m//usando ;come delimitatore), in un contesto vuoto, contro il contrario dello script.
Se possiamo garantire che non dovremo creare un palindromo di esrever,><=_$tnirpcui possiamo abbreviare il codice a 43 byte :
g.print$_=<>,reverse.m.esrever,><=_$tnirp.g
uso
echo -n 'neverod' | perl -e 'g.print$_=<>,reverse.m.esrever,><=_$tnirp.g'
neveroddoreven
Perl, 26 byte
Include 25 byte codice + 1 per -p.
$_.=reverse;m;esrever=._$
Non penso che questo sia valido poiché richiede la -pbandiera che non credo possa essere facilmente combinata nei contenuti della sceneggiatura per creare un vero palindromo. Praticamente le stesse chiamate di cui sopra, tranne che si basa sul fatto che -paggiunge anche un ;dietro le quinte (su Perls più recenti ...) per chiudere m//.
uso
echo -n 'neverod' | perl -pe ';$_.=reverse;m;esrever=._$;'
neveroddoreven