hashes Perl
กัญชาเป็นคีย์ / คู่ค่า
Perl ตัวแปรกัญชาเริ่มต้นด้วยเครื่องหมายเปอร์เซ็นต์ (%) เครื่องหมาย
รูปแบบการเข้าถึงองค์ประกอบกัญชา: $ {สำคัญ}
ต่อไปนี้เป็นตัวอย่างกัญชาง่าย:
#!/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";
โปรแกรมข้างต้นผลลัพธ์คือ:
สร้างกัญชา
คุณสามารถสร้างกัญชาของสองวิธีต่อไปนี้:
ขั้นแรกให้กำหนดค่าสำหรับแต่ละคีย์
$data{'google'} = 'google.com'; $data{'w3big'} = 'w3big.com'; $data{'taobao'} = 'taobao.com';
ประการที่สองผ่านรายการชุด
องค์ประกอบแรกในรายการของคีย์ที่สองคือค่า
%data = ('google', 'google.com', 'w3big', 'w3big.com', 'taobao', 'taobao.com');
นอกจากนี้คุณยังสามารถใช้= สัญลักษณ์> การตั้งค่าคีย์ / ค่า:
%data = ('google'=>'google.com', 'w3big'=>'w3big.com', 'taobao'=>'taobao.com');
ตัวอย่างต่อไปนี้เป็นสายพันธุ์ของตัวอย่างข้างต้นใช้- แทนเครื่องหมายคำพูด:
%data = (-google=>'google.com', -w3big=>'w3big.com', -taobao=>'taobao.com');
โดยใช้ปุ่มโหมดนี้ไม่สามารถมีช่องว่างอ่านวิธีองค์ประกอบ:
$val = %data{-google} $val = %data{-w3big}
องค์ประกอบการเข้าถึงกัญชา
รูปแบบการเข้าถึงองค์ประกอบกัญชา: $ {สำคัญ} ตัวอย่างดังต่อไปนี้:
#!/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";
โปรแกรมข้างต้นผลลัพธ์คือ:
อ่านค่าแฮช
คุณสามารถชอบค่าสารสกัดจากอาร์เรย์กัญชา
ค่าแฮสกัดไวยากรณ์อาร์เรย์: @ {key1, key2}
#!/uer/bin/perl %data = (-taobao => 45, -google => 30, -w3big => 40); @array = @data{-taobao, -w3big}; print "Array : @array\n";
โปรแกรมข้างต้นผลลัพธ์คือ:
Array : 45 40
อ่านคีย์กัญชาและความคุ้มค่า
อ่านที่สำคัญทั้งหมด
เราสามารถใช้ปุ่มฟังก์ชันในการอ่านทุกปุ่มกัญชาไวยากรณ์เป็นดังนี้:
keys %HASH
ฟังก์ชั่นนี้จะส่งกลับอาร์เรย์ของทั้งหมดที่สำคัญของกัญชาทั้งหมด
#!/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";
โปรแกรมข้างต้นผลลัพธ์คือ:
taobao google w3big
สิ่งที่ฉันสามารถใช้ฟังก์ชั่นที่คล้ายกันในการอ่านค่าทั้งหมดของค่าแฮไวยากรณ์เป็นดังนี้:
values %HASH
ฟังก์ชั่นนี้จะส่งกลับอาร์เรย์ของมูลค่าทั้งหมดของ hashes ทั้งหมด
#!/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";
โปรแกรมข้างต้นผลลัพธ์คือ:
taobao.com w3big.com google.com
การตรวจสอบองค์ประกอบที่มีอยู่
ถ้าคุณอ่านคู่คีย์ที่ไม่มีอยู่จริง /ค่าในกัญชาและผลตอบแทนค่าไม่ได้กำหนดและในการดำเนินงานของการแจ้งเตือนเตือน
เพื่อหลีกเลี่ยงสถานการณ์นี้เราสามารถใช้ฟังก์ชั่นที่มีอยู่เพื่อตรวจสอบว่าที่สำคัญที่มีอยู่เมื่อการดำรงอยู่อ่าน:
#!/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"; }
โปรแกรมข้างต้นผลลัพธ์คือ:
facebook 键不存
รหัสข้างต้นเราจะใช้ถ้า ... คำสั่งอื่นใดในส่วนต่อมาเราจะแนะนำที่เฉพาะเจาะจง
ได้รับขนาดกัญชา
ขนาดกัญชาคือจำนวนขององค์ประกอบที่เราจะได้รับผ่านทุกองค์ประกอบของอาร์เรย์จะคีย์หรือค่าแล้วคำนวณจำนวนขององค์ประกอบมากมายที่จะได้รับขนาดของกัญชาที่ตัวอย่างมีดังนี้
#!/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";
โปรแกรมข้างต้นผลลัพธ์คือ:
1 - 哈希大小: 3 2 - 哈希大小: 3
กัญชาเพิ่มหรือลบองค์ประกอบ
เพิ่มคู่คีย์ / ค่าสามารถทำได้ง่ายโดยการโอนอย่างไรก็ตามการลบองค์ประกอบกัญชาคุณจำเป็นต้องใช้ฟังก์ชั่นลบ:
#!/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";
โปรแกรมข้างต้นผลลัพธ์คือ:
1 - 哈希大小: 3 2 - 哈希大小: 4 3 - 哈希大小: 3