Perl, 45 байт
;print$_=<>,~~reverse;m;esrever~~,><=_$tnirp;
Довольно просто, prints input ( $_=<>), а затем reverseиз него. reverseвозвращается, $_потому что мы используем его в скалярном контексте с префиксом ~~. Затем мы сопоставляем ( m//используя в ;качестве разделителя), в пустом контексте, обратную сторону скрипта.
Если мы можем гарантировать, что нам не нужно создавать палиндром, esrever,><=_$tnirpмы можем сократить код до 43 байт :
g.print$_=<>,reverse.m.esrever,><=_$tnirp.g
использование
echo -n 'neverod' | perl -e 'g.print$_=<>,reverse.m.esrever,><=_$tnirp.g'
neveroddoreven
Perl, 26 байт
Включает 25-байтовый код + 1 для -p.
$_.=reverse;m;esrever=._$
Я не думаю, что это верно, поскольку для этого требуется -pфлаг, который, я думаю, не может быть легко объединен с содержимым скрипта для создания настоящего палиндрома. Практически те же вызовы, что и выше, за исключением того, что он -pтакже добавляет ;закулисные (на более новых Perls ...) для закрытия m//.
использование
echo -n 'neverod' | perl -pe ';$_.=reverse;m;esrever=._$;'
neveroddoreven