Apa perbedaan antara tanda kutip tunggal dan ganda di Perl

Dalam bahasa pemrograman Perl untuk membuat sebuah string dalam kode program yang dapat anda gunakan satu ' atau tanda kutip ganda ".

Ada perbedaan. Dalam tanda kutip tunggal bekerja hanya melarikan diri urutan \\ dan \', dalam tanda kutip ganda, kecuali dua pekerjaan beberapa escape sequence. Dan hanya jika anda menggunakan tanda kutip ganda, nama-nama variabel berlangsung di nilai (interpolasi terjadi). Rincian lebih lanjut.

Total

Tanda kutip tunggal dan ganda di Perl bahasa pemrograman yang digunakan untuk menggambarkan string dalam kode program (baris dalam teks program yang disebut "string literal"). Berikut ini sebuah contoh:

▶ Run
#!/usr/bin/perl

my $str1 = 'Hello, world!';
my $str2 = "Hello, world!";

Dalam program ini, kami menciptakan dua variabel, dan masing-masing dari mereka telah disesuaikan line. Dalam contoh ini, tidak ada perbedaan antara menggunakan double dan single quotes, string kita diterima di pertama dan dalam kedua kasus, benar-benar yang sama.

Backslash

Hal lain yang umum adalah dengan menggunakan double dan single quotes adalah bagaimana bertindak jika anda perlu di garis adalah simbol backslash \. Jika anda ingin membuat sebuah garis dengan simbol ini, di sebuah string literal yang anda butuhkan untuk menulis dua backslash \\. Dalam string yang dihasilkan akan menjadi satu backslash. Berikut ini sebuah contoh:

▶ Run
#!/usr/bin/perl

my $str1 = '\\';
my $str2 = "\\";

print $str1, "\n";
print $str2, "\n";

Program ini akan menampilkan:

\
\

Kutip dalam string

Perbedaan pertama antara tanda kutip tunggal dan ganda yang perlu anda lakukan untuk membuat garis yang memiliki tanda kutip tunggal atau ganda.

Menggunakan tanda kutip tunggal itu sangat mudah untuk membuat string yang memiliki tanda kutip ganda: '"'. Tapi jika perlu untuk membuat sebuah string yang memiliki single quote, itu harus ditulis dengan menggunakan dua karakter: terbalik slash \ dan kutipan. '\'' — seperti sebuah string literal menciptakan sebuah string dari satu simbol "kutip tunggal".

Dalam kasus tanda kutip ganda — semua jalan di sekitar. Hal ini mudah untuk membuat sebuah string dengan kutip tunggal "'", dan ke untuk tempat dalam string, double quote perlu menulis sebelum itu dengan backslash (ini disebut "screening") "\"".

Penggunaan karakter khusus

Ketika anda menggunakan tanda kutip tunggal hanya ada dua set simbol-simbol yang berubah menjadi sebuah karakter tunggal. Ini, seperti yang telah kita lihat sebelumnya, dua garis miring \\ — mereka berubah menjadi satu backslash; dan backslash, dan kutip tunggal \' berubah menjadi salah satu simbol "kutip tunggal".

Tapi ketika anda menggunakan tanda kutip ganda ada beberapa set seperti simbol-simbol (biasanya disebut sebagai "escape sequence"). Yang paling terkenal dan sering digunakan adalah kombinasi dari simbol-simbol \n. \ndi tanda kutip ganda berubah menjadi salah satu karakter khusus "newline". Jika satu kutipan print 'ASDF\nQWERTY'; menampilkan ASDF\nQWERTY, dan jika anda menggunakan tanda kutip ganda print "ASDF\nQWERTY"; akan muncul pada layar dua baris:

ASDF
QWERTY

Lain digunakan urutan escape \t, bila digunakan dalam tanda kutip ganda menjadi dalam karakter tab. Tidak terlalu sering, tapi masih digunakan \b, ini karakter khusus menghapus karakter sebelumnya (dapat digunakan untuk membuat animasi sederhana di konsol). Ada beberapa melarikan diri urutan, mereka sedikit digunakan.

Interpolasi dari variabel

Jika string yang dibuat menggunakan tanda kutip ganda untuk menulis nama variabel, string nama yang akan muncul nilai dari variabel ini (bila menggunakan tanda kutip tunggal dalam string akan menjadi nama).

Ini fitur bahasa ini sangat sering digunakan.

▶ Run
#!/usr/bin/perl

my $var = 'John';

my $str1 = 'Hello, $var';
my $str2 = "Hello, $var";

print $str1, "\n";
print $str2, "\n";

Program ini akan menampilkan:

Hello, $var
Hello, John

String $str1 kami buat dengan menggunakan tanda kutip tunggal dalam string berisi persis apa yang tertulis dalam string literal — 'Hello, $var'. Dan di baris $str2 variabel nama $var digantikan oleh nilai dari variabel ini.

Harap dicatat bahwa hanya menyebarkan skalar dan array:

▶ Run
#!/usr/bin/perl

my $var = 'John';
my @arr = ('one', 'two');
my %h = (
    a => 1,
);

sub my_sub {
    return 12;
}

print "$var @arr %h &my_sub";

Program ini menampilkan teks John one two %h &my_sub. Skalar $var dan array @arr berbalik nilai dan hash %h dan Saba my_sub — no.

Rekomendasi

Dalam banyak kasus, untuk membuat string literal, jadi dan tunggal dan tanda kutip ganda akan bekerja sama. Rekomendasi ini — jika string Litera masih menggunakannya, gunakan tanda kutip tunggal.

Artikel lainnya