Pertanyaan yang Anda tanyakan hanya menyangkut bagaimana shell menginterpretasikan inputnya dan meneruskannya ke program lain. Ini tidak ada hubungannya dengan Perl, per se.
Anda seharusnya bisa memasukkan ini ke dalam skrip:
foo '$x;
$y;'
Argumen yang diberikan kepada perintah akan memiliki baris baru di tempat yang sama seperti di skrip itu sendiri. Anda mungkin perlu berhati-hati untuk menyimpan skrip sedemikian rupa sehingga berakhir dengan jeda baris Unix-style (LF-only), jika tidak, Anda mungkin mendapatkan CR + LF (jeda baris DOS / Windows) atau hanya CR Reaks lineb gaya Mac). Anda juga dapat melakukan ini pada prompt interaktif, tetapi Anda akan melihat prompt lanjutan sebelum baris kedua dan selanjutnya:
$ foo '$x;
> $y;'
Di pesta , Anda juga dapat menggunakan $''
mengutip sintaks untuk menyandikan karakter baris baru seperti ini:
foo $'$x;\n$y;'
Argumen yang diteruskan ke program akan diperlakukan dengan cara yang mirip dengan string ANSI C. Jika Anda ingin garis miring terbalik yang sebenarnya dalam string, Anda harus menghindarinya \\
, sebagai gantinya.
Jadi, jika Anda benar-benar menginginkan string literal yang mengutip tanda kutip tunggal memberi Anda, Anda mungkin harus tetap dengan baris baru yang tertanam sehingga Anda tidak perlu khawatir tentang pelarian tambahan.