D Server
เนื้อหาของเรา
- กลับหน้าแรก
- CGI-Perl WebBoard
- Php3 WebBoard
- Developer WebBoard
บริการของเรา
- Free GuestBook
- Free Counter
- Free WebBoard
- Free Stats
- Free JumpBox
- Free E-Mail
ข้อมูลของเรา
- ข่าวประกาศ
- D'Server คืออะไร?
- ทีมงาน D'Server
- ติดต่อลงโฆษณา
- ข้อมูลการติดต่อทีมงาน
- ข้อตกลงการให้บริการ
Bandwidth Support by Internet Thailand
Power by Apache
Power by FreeBSD
บทเรียนภาษา Perl

บทที่ 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"

การบ้าน

ไม่มี - รับผิดชอบตัวเอง เอานะครับ อันไหนไม่เข้าใจ ก็ทำความเข้าใจซะนะครับ *ยิ้ม*

เนื้อหาส่วนถัดไป.. ->



[ สนับสนุนช่องทางข้อมูลโดย Internet Thailand | สงวนลิขสิทธิ์ (c) Dream Group 2542 | ข้อตกลงการบริการ | ทีมงาน Dream Group | แนะนำติชม มาที่ webmonster@dserver.org ]