Perl, 45 bayt
;print$_=<>,~~reverse;m;esrever~~,><=_$tnirp;
Oldukça basit, print
bunun arkasındaki girdi ( $_=<>
) reverse
. reverse
Döndürür $_
çünkü skaler bağlamda önek ile kullanıyoruz ~~
. Sonra ( bağlamlayıcı olarak m//
kullanarak ;
) geçersiz bağlamda komut dosyasının tersiyle eşleşiriz.
Eğer bir garanti verebilirsek, bir palindrom oluşturmak zorunda kalmayacağız esrever,><=_$tnirp
, kodu 43 byte kısaltabiliriz :
g.print$_=<>,reverse.m.esrever,><=_$tnirp.g
kullanım
echo -n 'neverod' | perl -e 'g.print$_=<>,reverse.m.esrever,><=_$tnirp.g'
neveroddoreven
Perl, 26 bayt
İçin 25 bayt kodu + 1 içerir -p
.
$_.=reverse;m;esrever=._$
Bunun geçerli olduğunu sanmıyorum çünkü -p
gerçek bir palindrom oluşturmak için sanırım betiğin içeriğiyle kolayca birleştirilebileceğini sanmıyorum. Hemen hemen aynı çağrıları, dışında kapatmak için sahne arkasına (yeni Perls ...) -p
de ekleyen gerçeğine dayanması dışında .;
m//
kullanım
echo -n 'neverod' | perl -pe ';$_.=reverse;m;esrever=._$;'
neveroddoreven