บทที่ 2 : ตัวแปรในภาษา Perl
ตัวแปรในภาษา Perl เป็นตัวแปรแบบ ไม่ได้กำหนดชนิด สามารถใช้ได้ทั้ง ข้อความ หรือ ตัวเลข
ไม่ต้องมีการกำหนดชนิด ไม่ต้องมี การประกาศชื่อตัวแปรก่อน สามารถเรียกใช้งาน ในส่วนไหนของโปรแกรมก็ได้
(คิดว่าสะดวกกว่า C ไหม?) ในภาษา Perl มีตัวแปรอยู่ 3 แบบ คือ
- ตัวแปรแบบ Scalar
- ตัวแปรแบบ Array
- ตัวแปรแบบ Associative Array (หรือที่เรียกว่า Hash)
ตัวแปรแบบ Scalar
เป็นตัวแปรแบบพื้นฐานที่สุด ชื่อตัวแปร จะต้องนำหน้าด้วย สัญลักษณ์ $ (เครื่องหมายดอลลาร์)
ชื่อตัวแปร สามารถใช้ได้ทั้ง ตัวอักษร ตัวเลข และเครื่องหมาย _ (ขีดล่าง) แต่ต้องไม่ขึ้นต้น ด้วยตัวเลข
ส่วนตัวแปร $_ เป็นตัวแปรพิเศษ ชื่อตัวแปรในภาษา Perl เป็นแบบ case sensitive ตัวใหญ่
ตัวเล็ก จะไม่เหมือนกัน เพราะฉนั้น $Sitetutor จะต่างกับ $sitetutor
ตัวอย่างการใช้งานตัวแปร Scalar
$Mymoney = 10;
$Mymoney = "no money";
ตัวแปรแบบ Array
ตัวแปร Array ในภาษา Perl จะต้องนำหน้า ชื่อตัวแปรด้วยสัญลักษณ์ @ ชื่อตัวแปร สามารถใช้ได้ทั้ง
ตัวอักษร ตัวเลข และเครื่องหมาย _ (ขีดล่าง) แต่ต้องไม่ขึ้นต้นด้วย ตัวเลข ส่วนตัวแปร @_ เป็นตัวแปรพิเศษ
ชื่อตัวแปรในภาษา Perl เป็นแบบ case sensitive ตัวใหญ่ตัวเล็ก จะไม่เหมือนกัน เพราะฉนั้น @Sitetutor
จะต่างกับ @sitetutor
ตัวอย่างการใช้งานตัวแปร Array
@sex = ("male","female","unknow");
@dayinweek = ("Monday","Tueday","Wednesday","Thursday","Friday","Saturday","Sunday");
เป็นการกำหนด ข้อมูล 3 ข้อมูลให้กับตัวแปร @sex และตัวแปร @dayinweek มี 7 ข้อมูล
ดรรชนีอ้างอิง ของข้อมูลใน Array จะเริ่มต้นที่ 0 สามารถอ้างถึง ข้อมูลตำแหน่งนั้นๆ ได้โดยระบุตำแหน่ง
ไว้ภายในเครื่องหมาย [ และ ] ตามหลังชื่อตัวแปร เพราะฉนั้น $dayinweek[2] จะหมายถึง Wednesday
หมายเหตุ : เครื่องหมาย @ ถูกเปลี่ยนเป็น $ เพราะว่า Wednesday เป็นข้อมูลแบบ Scalar
ตัวแปรแบบ Associative Array (หรือที่เรียกว่า Hash)
ตัวแปร Hash ในภาษา Perl ชื่อตัวแปรจะต้อง ขึ้นต้นด้วยสัญลักษณ์ % (เครื่องหมายเปอร์เซ็นต์)
ในการอ้างอิง ถึงข้อมูลในตัวแปร Array ปกติเราจะใช้ ดรรชนีที่เป็นตัวเลข เพื่ออ้างถึงตัวข้อมูลนั้นๆ
ข้อมูลแรกใน array @dayinweek คือ $dayinweek[0] ข้อมูลตัวถัดมาใน array คือ $dayinweek[1]
ไปเรื่อยๆ แต่ในภาษา Perl มีตัวแปร Array ที่สามารถอ้างอิงดรรชนี โดยใช้ข้อความได้ ตัวแปรแบบนี้เรียกว่า
Associative array หรือ Hash
ตัวอย่างการใช้งานตัวแปร Hash
%price=("Internet Magazine", 50,
"Byte Thailand", 75,
"KC Weekly", "30 Bht",
"Viva Friday", 30);
เราจะสามารถค้นราคา ของหนังสือแต่ละเล่มได้ โดยใช้ expression ต่อไปนี้
$price{"Internet Magazine"}; # จะให้ผลลัพธ์เท่ากับ 50
$price{"Byte Thailand"}; # จะให้ผลลัพธ์เท่ากับ 75
$price{"KC Weekly"}; # จะให้ผลลัพธ์เท่ากับ "30 Bht"
$price{"Viva Friday"}; # จะให้ผลลัพธ์เท่ากับ 30
หมายเหตุ : เหมือนกับการใช้งานตัวแปร array เครื่องหมาย % ถูกเปลี่ยนเป็น $ เพราะว่าตัวข้อมูล
ที่เรียกใช้งานแต่ละตัว เป็นตัวแปรแบบ Scalar ที่ไม่เหมือนกับ Array คือจะใช้เครื่องหมาย { และ } แทน
[ และ ] การใช้ตัวแปรแบบ Hash ช่วยในการเขียน และออกแบบโปรแกรม ได้มาก
ตัวแปรแบบ Hash สามารถเปลี่ยนเป็น ตัวแปรแบบ array ได้ และตัวแปรแบบ array ก็สามารถแปลง
เป็นตัวแปรแบบ Hash ได้ด้วยเช่นกัน โดยที่ตัวแปร array ที่จะแปลงเป็น ตัวแปรแบบ Hash ต้องมีจำนวนสมาชิก
เป็นเลขคู่
@bookdata = %price # @bookdata เป็นตัวแปรแบบ array
# ซึ่งตอนนี้มีจำนวนสมาชิกเท่ากับ 8
$bookdata[5]; # จะให้ผลลัพธ์เท่ากับ "30 Bht"
# จากข้อมูลในตัวแปร array ที่ชื่อ @bookdata
%newprice = @bookdata # %newprice เป็นตัวแปรแบบ Hash
# มีข้อมูลภายในเหมือนกับ %price
ตัวแปร Environment
เมื่อโปรแกรม CGI Script ภาษา Perl ทำงาน จะมีตัวแปร environment ถูกกำหนดขึ้น
ข้อมูลของตัวแปร environment และค่าต่างๆภายใน นั้นจะถูกเก็บเป็น ตัวแปรแบบ Hash ชื่อว่า
%ENV และมีดัชนี เป็นชื่อตัวแปรภายใน ดูตัวอย่างจาก โปรแกรมต่อไปนี้
print "This server run $ENV{'SERVER_SOFTWARE'} and ";
print "your IP address is $ENV{'REMOTE_ADDR'}\n";
สรุปท้ายบท - ชนิดตัวแปรในภาษา Perl
- Scalar
- ชื่อตัวแปรจะต้องขึ้นต้นด้วย $ (เช่น $varname)
- ใช้ได้ทั้งข้อมูลตัวอักษร ข้อความและตัวเลข
- Array
- ชื่อตัวแปรจะต้องขึ้นต้นด้วย @ (เช่น @arrayname)
- อ้างอิงถึงข้อมูล แต่ละตัวใน array ได้โดยใช้รูปแบบ : $arrayname[n]
- ใช้ได้ทั้งข้อมูล ตัวอักษร ข้อความและตัวเลข ภายใน array เดียวกันสามารถใช้ได้ กับทั้ง ตัวอักษร ข้อความ และตัวเลข
- Associative Array (หรือที่เรียกว่า Hash)
- ชื่อตัวแปรจะต้องขึ้นต้นด้วย % (เช่น %hashname)
- อ้างอิงถึงข้อมูล แต่ละตัวใน Hash ได้โดยใช้รูปแบบ : $arrayname{'key'}
- เก็บข้อมูลได้ทั้ง ตัวอักษร ข้อความและตัวเลข โดยประกอบด้วย key และ value เช่น
- "Viva Friday","Cartoon"
- "Internet Magazine","Computer Magazine"
การบ้าน
ไม่มี - รับผิดชอบตัวเอง เอานะครับ อันไหนไม่เข้าใจ ก็ทำความเข้าใจซะนะครับ *ยิ้ม*
เนื้อหาส่วนถัดไป.. ->