Kicsit belenyúltam a kódodba: a beolvasott sort kiírom < és > jelek között, az eredményt [ és ] jelek között.
Lássunk két példafájlt:
1.) f végén van újsor:
jack@hypnos:~/Asztal$ cat f
'' sfdsfd f 's x'''
jack@hypnos:~/Asztal$
2.) g végén nincs:
jack@hypnos:~/Asztal$ cat f | tr -d '\n' >g
jack@hypnos:~/Asztal$ cat g
'' sfdsfd f 's x'''jack@hypnos:~/Asztal$
Futtassuk a kódot:
1.) f-re működik:
jack@hypnos:~/Asztal$ perl -w proba.pl f
<'' sfdsfd f 's x'''
>['' sfdsfd f 's x'''
]
2.) g-re nem:
jack@hypnos:~/Asztal$ perl -w proba.pl g
<'' sfdsfd f 's x'''>['' sfdsfd f 's x]
jack@hypnos:~/Asztal$
Neked azért működött, mert feltehetően a standard inputról adtál neki bemenetet. Ilyenkor a string végén ott a \n, tehát az aposztóf nem az utolsó karakter.