แฮชคือชุดของคู่ คีย์/ค่า
ตัวแปรแฮชในภาษา Perl เริ่มต้นด้วยเครื่องหมายเปอร์เซ็นต์ (%)
เข้าถึงรูปแบบองค์ประกอบแฮช: ${key}
นี่คือตัวอย่างแฮชง่ายๆ:
เมื่อรันโปรแกรมข้างต้น ผลลัพธ์ที่ได้คือ:
มีสองวิธีในการสร้างแฮช:
$data{'google'} = 'google.com';$data{'codercto'} = 'codercto.com';$data{'taobao'} = 'taobao.com';
องค์ประกอบแรกในรายการคือคีย์ และองค์ประกอบที่สองคือค่า
%data = ('google', 'google.com', 'codercto', 'codercto.com', 'taobao', 'taobao.com');
คุณยังสามารถใช้สัญลักษณ์ => เพื่อตั้งค่าคีย์/ค่า:
%data = ('google'=>'google.com', 'codercto'=>'codercto.com', 'taobao'=>'taobao.com');
ตัวอย่างต่อไปนี้เป็นรูปแบบหนึ่งของตัวอย่างข้างต้น โดยใช้ - แทนเครื่องหมายคำพูด:
%data = (-google=>'google.com', -codercto=>'codercto.com', -taobao=>'taobao.com');
ด้วยวิธีนี้ ช่องว่างจะไม่ปรากฏในคีย์ วิธีการอ่านองค์ประกอบคือ:
$val = $data{-google}$val = $data{-codercto}
รูปแบบองค์ประกอบแฮชการเข้าถึง: ${key} ตัวอย่างจะเป็นดังนี้:
เมื่อรันโปรแกรมข้างต้น ผลลัพธ์ที่ได้คือ:
คุณสามารถแยกค่าจากแฮชได้เหมือนกับอาร์เรย์
ค่าแฮชจะถูกแยกออกมาเป็นรูปแบบไวยากรณ์อาร์เรย์: @{key1,key2}
เมื่อรันโปรแกรมข้างต้น ผลลัพธ์ที่ได้คือ:
อาร์เรย์: 45 40
เราสามารถใช้ฟังก์ชัน คีย์ เพื่ออ่านคีย์ทั้งหมดของแฮชได้ โดยมีรูปแบบดังนี้:
คีย์ %แฮช
ฟังก์ชันนี้จะส่งคืนอาร์เรย์ของคีย์ทั้งหมดสำหรับแฮชทั้งหมด
เมื่อรันโปรแกรมข้างต้น ผลลัพธ์ที่ได้คือ:
taobaogooglecodercto
ในทำนองเดียวกัน เราสามารถใช้ฟังก์ชัน ค่า เพื่ออ่านค่าทั้งหมดของแฮชได้ โดยมีรูปแบบไวยากรณ์ดังนี้
ค่า%แฮช
ฟังก์ชันนี้ส่งคืนอาร์เรย์ของค่าทั้งหมดสำหรับแฮชทั้งหมด
เมื่อรันโปรแกรมข้างต้น ผลลัพธ์ที่ได้คือ:
taobao.comcodercto.comgoogle.com
หากคุณอ่านคู่คีย์/ค่าที่ไม่มีอยู่ในแฮช ค่า ที่ไม่ได้กำหนด จะถูกส่งกลับและคำเตือนจะปรากฏขึ้นระหว่างการดำเนินการ
เพื่อหลีกเลี่ยงสถานการณ์นี้ เราสามารถใช้ฟังก์ชัน ที่มีอยู่ เพื่อตรวจสอบว่าคีย์มีอยู่หรือไม่ และอ่านเมื่อมีคีย์อยู่:
เมื่อรันโปรแกรมข้างต้น ผลลัพธ์ที่ได้คือ:
ไม่มีคีย์ Facebook
ในโค้ดข้างต้น เราใช้คำสั่ง IF...ELSE ซึ่งเราจะแนะนำโดยละเอียดในบทต่อไปนี้
ขนาดแฮชคือจำนวนองค์ประกอบ เราสามารถรับขนาดแฮชได้โดยรับอาร์เรย์องค์ประกอบทั้งหมดของคีย์หรือค่า จากนั้นจึงคำนวณจำนวนองค์ประกอบอาร์เรย์ ตามตัวอย่างดังต่อไปนี้:
เมื่อรันโปรแกรมข้างต้น ผลลัพธ์ที่ได้คือ:
1 - ขนาดแฮช: 32 - ขนาดแฮช: 3
การเพิ่มคู่คีย์/ค่าสามารถทำได้ผ่านการกำหนดง่ายๆ แต่หากต้องการลบองค์ประกอบแฮชคุณต้องใช้ฟังก์ชัน ลบ :
เมื่อรันโปรแกรมข้างต้น ผลลัพธ์ที่ได้คือ:
1 - ขนาดแฮช: 32 - ขนาดแฮช: 43 - ขนาดแฮช: 3