ตัวแปร Hash ใน Perl
posted on 14 Sep 2009 18:28 by geneticbloggerตัวแปร Hashes (Associated Array) ซึ่งหมายถึงเราสามารถกำหนดคีย์ (หรือค่าอินเด็กซ์แบบเป็นข้อความ) ให้กับ Array ได้ โดยมีรูปแบบการใช้งานดังนี้
การประกาศค่าให้กับตัวแปร Array (ในการประกาศค่าให้กับตัวแปรอะเรย์ Hashes สัญลักษณ์ที่ใช้คือ %) เช่น
%day_in_month = ("January" => 31, "Febuary" => 29, "March" => 31);
%number_hashes = ("01" => "Monday", "02' => "Tuesday", "03" => "Wednesday");
ในการเข้าถึงค่าของตัวแปร Array แบบ Hashes นี้มีรูปแบบดังนี้
print $day_in_month{"January"}; # แสดงผล 31
print $number_hashes{"01"}; # แสดงผล Monday
ในการเปลี่ยนค่า Array ตามคีย์ที่ต้องการ มีรูปแบบดังนี้
$day_in_month{"Febuary"} = 28; # %day_in_month = ("January" => 31, "Febuary" => 28, "March" => 31);
ถ้าต้องการนับจำนวนสมาชิกในอะเรย์ทั้งหมด (ใช้เหมือนกับตัวแปร Array แบบธรรมดา)
print $#day_in_month; # ค่าที่ได้คือ 3
ถ้าต้องการดู key ของตัวแปร Array ทั้งหมด
print keys %day_in_month; # แสดงผล January, Febuary, March
@keys_day = keys %day_in_month; # ยังสามารถเก็บค่า keys ของ Array แบบ Hashes เข้าเป็นตัวแปร Array แบบธรรมดาได้ด้วย เพราะฉะนั้น @keys_day = ("January", "Febuary", "March")
ถ้าต้องการเรียกดูค่าทั้งหมดของตัวแปร Array แบบ Hashes
print values %day_in_month; # แสดงผล 31, 28, 31