hash perl
Hash adalah pasangankunci / nilai.
Perl variabel hash mulai dengan tanda persen (%) tanda.
AksesFormat hash elemen:$ {key}.
Berikut ini adalah contoh hash sederhana:
#!/usr/bin/perl %data = ('google', 'google.com', 'w3big', 'w3big.com', 'taobao', 'taobao.com'); print "\$data{'google'} = $data{'google'}\n"; print "\$data{'w3big'} = $data{'w3big'}\n"; print "\$data{'taobao'} = $data{'taobao'}\n";
Program di atas, output adalah:
Membuat hash
Anda dapat membuat hash dari dua cara berikut:
Pertama, menetapkan nilai untuk setiap tombol
$data{'google'} = 'google.com'; $data{'w3big'} = 'w3big.com'; $data{'taobao'} = 'taobao.com';
Kedua, melalui daftar set
Elemen pertama dalam daftar kunci, yang kedua adalah nilai.
%data = ('google', 'google.com', 'w3big', 'w3big.com', 'taobao', 'taobao.com');
Anda juga dapat menggunakan=> simbol untuk mengatur kunci / nilai:
%data = ('google'=>'google.com', 'w3big'=>'w3big.com', 'taobao'=>'taobao.com');
Contoh berikut adalah varian dari contoh di atas, gunakan- bukan tanda kutip:
%data = (-google=>'google.com', -w3big=>'w3big.com', -taobao=>'taobao.com');
Menggunakan tombol modus ini tidak dapat memiliki ruang, baca cara elemen:
$val = %data{-google} $val = %data{-w3big}
Unsur akses hash
Akses hashFormat elemen: $ {key}, contoh adalah sebagai berikut:
#!/usr/bin/perl %data = ('google'=>'google.com', 'w3big'=>'w3big.com', 'taobao'=>'taobao.com'); print "\$data{'google'} = $data{'google'}\n"; print "\$data{'w3big'} = $data{'w3big'}\n"; print "\$data{'taobao'} = $data{'taobao'}\n";
Program di atas, output adalah:
Membaca nilai hash
Anda bisa seperti nilai ekstrak berbagai dari hash.
nilai hash mengekstraksisintaks array: @ {key1, key2}.
#!/uer/bin/perl %data = (-taobao => 45, -google => 30, -w3big => 40); @array = @data{-taobao, -w3big}; print "Array : @array\n";
Program di atas, output adalah:
Array : 45 40
Membaca kunci hash dan nilai
Baca semua kunci
Kita dapat menggunakantombol fungsi untuk membaca semua kunci hash, sintaks adalah sebagai berikut:
keys %HASH
Fungsi ini mengembalikan array semua hash kunci dari semua.
#!/usr/bin/perl %data = ('google'=>'google.com', 'w3big'=>'w3big.com', 'taobao'=>'taobao.com'); @names = keys %data; print "$names[0]\n"; print "$names[1]\n"; print "$names[2]\n";
Program di atas, output adalah:
taobao google w3big
Apa yang bisa saya gunakan fungsi yang sama untuk membaca semuanilai dari nilai hash, sintaks adalah sebagai berikut:
values %HASH
Fungsi ini mengembalikan array dari semua nilai semua hash.
#!/usr/bin/perl %data = ('google'=>'google.com', 'w3big'=>'w3big.com', 'taobao'=>'taobao.com'); @urls = values %data; print "$urls[0]\n"; print "$urls[1]\n"; print "$urls[2]\n";
Program di atas, output adalah:
taobao.com w3big.com google.com
Mendeteksi unsur ada
Jika Anda membaca sepasang kunci tidak ada / nilai di hash, dan mengembalikan nilaiundefined, dan dalam pelaksanaan pengingat peringatan.
Untuk menghindari situasi ini, kita dapat menggunakanada fungsi untuk menentukan apakah kunci itu ada, ketika keberadaan berbunyi:
#!/usr/bin/perl %data = ('google'=>'google.com', 'w3big'=>'w3big.com', 'taobao'=>'taobao.com'); if( exists($data{'facebook'} ) ){ print "facebook 的网址为 $data{'facebook'} \n"; } else { print "facebook 键不存在\n"; }
Program di atas, output adalah:
facebook 键不存
Kode di atas kita menggunakanIF ... ELSE pernyataan pada bagian selanjutnya kita akan memperkenalkan tertentu.
Mendapat ukuran hash
ukuran hash adalah jumlah elemen yang bisa kita dapatkan melalui semua elemen dari array ke tombol atau nilai, dan kemudian menghitung jumlah elemen array untuk mendapatkan ukuran hash, contoh adalah sebagai berikut:
#!/usr/bin/perl %data = ('google'=>'google.com', 'w3big'=>'w3big.com', 'taobao'=>'taobao.com'); @keys = keys %data; $size = @keys; print "1 - 哈希大小: $size\n"; @values = values %data; $size = @values; print "2 - 哈希大小: $size\n";
Program di atas, output adalah:
1 - 哈希大小: 3 2 - 哈希大小: 3
Hash menambah atau menghapus elemen
Tambahkan pasangan kunci / nilai dapat dilakukan dengan tugas sederhana. Namun, menghapus elemen hash Anda perlu menggunakan fungsihapus:
#!/usr/bin/perl %data = ('google'=>'google.com', 'w3big'=>'w3big.com', 'taobao'=>'taobao.com'); @keys = keys %data; $size = @keys; print "1 - 哈希大小: $size\n"; # 添加元素 $data{'facebook'} = 'facebook.com'; @keys = keys %data; $size = @keys; print "2 - 哈希大小: $size\n"; # 删除哈希中的元素 delete $data{'taobao'}; @keys = keys %data; $size = @keys; print "3 - 哈希大小: $size\n";
Program di atas, output adalah:
1 - 哈希大小: 3 2 - 哈希大小: 4 3 - 哈希大小: 3