สยามเว็บโฮส โฮสติ้งดี ราคาถูก

วัตถุประสงค์การก่อตั้งฯ
ห้องพระ-ชำระจิตใจ
เรื่องสั้น-บทความ
บทกลอน-บทกวี
เกมส์ออนไลน์
ตำหนักเพลงไทยเดิม
เซียมซีเสี่ยงโชค
กระดานสนทนา
ข่าวฝากประชาสัมพันธ์
กระดานซื้อ-ขายสินค้า
ฟรีอีเมล์เนื้อที่ 5 MB
ติดต่อ นายทะเบียน
Add to Favorites

ทั่วโลก www
ชมรมเว็บเพจไทย

Power by Google!
สนับสนุนพื้นที่ Hosting

สยามเว็บโฮสดอทคอม

 
Updated: 16/10/2545


บทความเรื่อง เริ่มเขียนสคริปต์ด้วยภาษา Perl โดย webmaster@thaitop.com

2. ตัวแปรและคำสั่งพื้นฐาน

คุณจะได้เรียนรู้

  1. การตั้งตัวแปรแบบต่างๆและการเรียกใช้ตัวแปร
  2. คำสั่งพื้นฐานต่างๆเช่น if-else / while / foreach / for
  3. การใช้เครื่องหมายสัญลักษณ์ เท่ากับ มากกว่า น้อยกว่า เงื่อนไข ฯลฯ
  4. การทำงานทางคณิตศาสตร์ขั้นพื้นฐาน (บวก-ลบ-คูณ-หาร)

ถ้าจะถามว่าอะไรคือตัวแปร มีไว้ทำไม ใช้อย่างไร ไม่ต้องถามผมหรอก เพราะกำลังจะทำให้ดูอยู่นี่แล้ว 1

ตัวอย่างการตั้งตัวแปรแบบที่ 1 และการใช้คำสั่ง if-else

print "content-type:text/html\n\n"; #บรรทัดนี้อธิบายแล้วในบทที่ 1
$guest_name = "Suwat"; #กำหนดให้ตัวแปร $guest_name มีค่าเท่ากับ Suwat
if ($guest_name eq "Suwat") { # ถ้าตัวแปร $guest_name เท่ากับ Suwat
  print "Hello Suwat, how are you ?"; #ให้พิมพ์ข้อความนี้

else { # ถ้าไม่ใช่
   print "Sorry I don't know you, may I have your name ?"; #ให้พิมพ์ข้อความนี้
}

รู้หรือยังว่าตัวแปรมีไว้ทำไม?

จากตัวอย่างข้างบนนี้เราได้ทำการตั้งตัวแปร และใช้คำสั่ง if-else บรรทัดที่ตั้งตัวแปรคือ $guest_name = "Suwat"; ถ้าคุณตั้งแบบนี้ $guest_name = 'Suwat'; ก็จะมีค่าเท่ากัน แต่ถ้าเปลี่ยน จาก Suwat ให้เป็น suwat จะไม่เท่ากันแล้วเพราะ perl จะมองตัวอักษรเล็กใหญ่มีค่าไม่เท่ากัน การตั้งตัวแปรก็ระวังด้วยนะครับถ้าเป็นตัวแปรที่มีค่าของตัวแปรเป็นตัวอักษรต้องมีเครื่องหมาย '' หรือ "" ครอบค่าของตัวแปรอยู่ ดังตัวอย่าง แต่ถ้าค่าของตัวแปรเป็นตัวเลขเมื่อไรไม่ต้องใช้เครื่องหมายครอบนะครับเช่น $guest_age = 82; เป็นต้น

การตั้งตัวแปรข้างต้นสำหรับตัวแปรที่มีค่าของตัวแปรเพียงค่าเดียว ถ้าตัวแปรมีค่าเท่ากันสามารถตั้งได้ดังนี้ $apple = $orange = $durian = "fruit"; (ค่าของ 3 ตัวแปรนี้คือ fruit) หรือถ้ามีค่าของตัวแปรเป็นตัวเลขเช่น $a = $b = $c = $d = 10;

ต่อไปนี้เป็นตัวอย่างย่อยๆ ก่อนการอธิบาย การใช้ if-else ต่อไป

print "Content-type:text/html\n";
print "<html><body>\n";
$name = "Suwat"; #ตั้งตัวแปรตัวอักษร
print "My name is "; #พิมพ์ออกที่ browser
print "$name"<br>; #พิมพ์ค่าตัวแปรออกที่ browser พร้อมกับใส่ <br> ขึ้นบรรทัดใหม่
$myage = 15; #ตั้งตัวแปรตัวเลข
print "<br>My age is $myage"; #พิมพ์ออกที่ browser
print "</body></html>";

ต่อไปก็อธิบาย: คำสั่ง if - else

print "content-type:text/html\n\n";
$guest_name = "Suwat";
if ( $guest_name eq "Suwat"
   print "Hello Suwat, how are you ?";
}
else {
   print "Sorry I don't know you, may I have your name ?";
}

ตัวเอียงคืองานที่ต้องทำเมื่อเงื่อนไขเป็นจริงหรือไม่เป็นจริง การใช้คำสั่ง if-else จะใช้แค่ if อย่างเดียวก็ได้ ถ้าเราไม่ต้องการให้เกิดงานอื่น จากตัวอย่างจะใช้ดังนี้

print "content-type:text/html\n\n";
$guest_name = "Suwat";
if ( $guest_name eq "Suwat") {
   print "Hello Suwat, how are you ?";
}

หรือถ้าคุณต้องการให้มีหลายเงื่อนไขให้ใช้ elseif แทรกไปเช่น

print "content-type:text/html\n\n";
$guest_name = "Suwat";
if ( $guest_name eq "Suwat") {
   print "Hello Suwat, how are you ?";
}
elseif ($guest_name eq "Wan") {
     print "HelloWan, how are you ?";
}
elseif ( $guest_name eq "Moo") {
    print "Hello Moo, how are you ?";
}
else {
   print "Sorry I don't know you, may I have your name ?";
}

ตัวอย่างการตั้งตัวแปรแบบที่ 2 และการใช้คำสั่ง foreach

การตั้งตัวแปรแบบที่ 2 นี้ใช้ในกรณีที่ 1 ตัวแปรมีหลายค่า ไม่ค่อยอยากบอกเท่าไรเลยว่าลักษณะแบบนี้ เขาเรียกว่า ตัวแปร array ส่วนแบบ ที่ผ่านมาเรียกว่า scalar มาดูตัวอย่างการตั้งตัวแปร array กันเลยนะครับ

@fruit = ("apple","durian","pineapple");

ตัวแปรที่ชื่อ fruit มีค่าอยู่ 3 ค่าคือ apple, durian, pineapple ชื่อของตัวแปรแบบนี้ต้องมี @ นำหน้าด้วยนะครับ การนำค่าของตัวแปรแบบนี้มาใช้ต้องทำอย่างไรดี ดูเลยแล้วกันครับ

print "content-type:text/html\n\n";
@fruit = ("apple","durian","pineapple");
foreach $a (@fruit) {
print "$a <br>\n";
}

เอาละครับถึงเวลาแสดงฝีมือ copy code ข้างบนนี้ไปสร้างเป็นไฟล์ใหม่ที่สามารถส่งผลออกมาที่
หน้าจอบราวเซอร์ได้ ลองทำดูนะครับ ผลที่เกิดจาก code นี้จะได้ค่าของตัวแปรออกมา 3 บรรทัดซึ่งเป็นผลจากการทำงาน ของคำสั่ง foreach ดูจากตัวอย่างคุณคงใช้ งานได้นะครับ ผมมีอีก 1ตัวอย่างของตัวแปร Array ดังนี้ครับ

print "content-type:text/html\n\n";
@arraycolor = ( "red", "blue" , "black" , "green" );
print "@arraycolor\n"; # พิมพ์ออกหน้าจอทั้งหมด
print "<hr>";
print "$arraycolor[0]\n"; # พิมพ์ออกหน้าจอทีละตัวแปร
print "$arraycolor[1]\n";
print "$arraycolor[2]\n";
print "$arraycolor[3]\n";


ลองสร้างเป็นไฟล์แล้วดูผลนะครับ คุณคงได้ปิ้งไอเดียแน่ๆ


ตัวอย่างการตั้งตัวแปรแบบที่ 3 ตัวแปรแบบจับคู่

print "content-type:text/html\n\n";
%distante = ( "Korat" , 120 , "Ayuttaya" , 50 , "Chiengmai" , 334 );
print " From Bangkok to Korat is $distante{'Korat'} kms.\n";
print " From Bangkok to Korat is $distante{'Ayuttaya'} kms.\n";
print " From Bangkok to Korat is $distante{'Chiengmai'} kms.\n";

ลองเรียกโปรแกรมนี้ดูแล้วจะอ๋อ code อยู่นี่ ครับ


ตัวแปรระบบ

print "content-type:text/html\n\n";
$ip = $ENV{'REMOTE_ADDR'};
print "ENV{'REMOTE_ADDR = $ip<br><hr>";

foreach $key (keys(%ENV)) {
print "$key = $ENV{$key}<br>\n";
}

อย่างงนะครับ ถ้าเห็นผลจากโปรแกรม นี้ บางทีคุณจะรู้จักอะไรมากขึ้นจากโปรแกรมไม่กี่บรรทัดนี้


การใช้คำสั่ง while

print "content-type:text/html\n\n";
$count = 1;
while ($count != 7) {
print "<br><font size=\"$count\" color=\"red\">Hello My Perl</font>\n";
$count++;
}

ลองเรียกโปรแกรมนี้  แล้ว view source จากบราวเซอร์นะครับ เปรียบเทียบกับที่เห็นอยู่ด้านบนนี้ จะพบสิ่งเหลือเชื่อครับ อย่าลืมนับจำนวนบรรทัดของ code นี้ กับ code ที่ได้จากบราวเซอร์ด้วยนะครับ

การใช้คำสั่ง for

print"content-type:text/html\n\n";
$My_name = "Suwat";
for ( $count=1;$count<=10;$count++) {
print "$My_name<br>\n";
}

อีกแล้วครับท่าน ทดลอง โปรแกรม นี้เหมือนกับคำสั่ง for แล้วตรวจผลที่ได้ คุณจะพบสัจธรรม

การใช้เครื่องหมายสัญลักษณ์เงื่อนไข

จะเห็นว่าใน code ต่างๆด้านบนจะมีการใช้สัญลักษณ์เช่น eq เป็นต้น เรามาดูสัญลักษณ์อื่นๆที่ใช้ในการเขียน โปรแกรมภาษา Perl กัน ถ้าเจออีกจะได้ไม่งง $x และ $y ผมสมมุติให้เป็นตัวแปรนะครับ เวลาที่ใช้งานจริงๆ ต้องนำไปใช้ให้เหมาะกับตัวแปรด้วยนะครับ เช่น if ($x == &y) { .. ใช้ในกรณีที่ทั้ง $x และ $y เป็นตัวแปรที่มีค่า เป็นตัวเลข แต่ถ้าเป็นตัวอักษรต้องแทน == ด้วย eq นะครับ แถมอีกนิด เงื่อนไข และ (and) ให้ใช้ && และเงื่อนไข หรือ (or)ให้ใช้ ||

  ถ้าเป็นตัวเลข ถ้าเป็นตัวอักษร
$x เท่ากัน $y $x == $y $x eq $y
$x ไม่เท่ากัน $y $x != $y $x ne $y
$x มากกว่า $y $x > $y $x gt $y
$x มากกว่าหรือเท่ากัน $y $x >= $y $x ge $y
$x น้อยกว่า $y $x < $y $x lt $y
$x น้อยกว่าหรือเท่ากัน $y $x <= $y $x le $y



การทำงานทางคณิตศาสตร์ (บวก-ลบ-คูณ-หาร)

print"content-type:text/html\n\n";
$a = 2;
$b = 4;
$num1 = $a + $b; # บวกครับ
$num1 = 2 + 32; # บวกครับ
$num2 = $a * $b; #คูณกันเห็นๆ
$num2 = $a * 6; #คูณกันเห็นๆ
$num3 = $b / $a; #อีนี่หารจะจ๊ะนาย
$num3 = 10 / 5; #อีนี่หารจะจ๊ะนาย
$num4 = $b - $a; #จะอะไรถ้าไม่ใช่ลบ
$num4 = 100 - $a; #จะอะไรถ้าไม่ใช่ลบ
$answer = $num1 + $num2 + $num3 + $num4;
print "<br>คำตอบคือ $answer";


ต้องการคำอธิบายใหม ?

จากตัวอย่างหรือบทเรียนต่างๆในหน้านี้ ถ้าคุณยังไม่รู้ว่าจะเอาค่าโน่นค่านี่ไปใช้อะไร ใช้เมื่อไหร่ ใช้ยังไง ก็สงสัยต่อไปก่อนนะครับ แล้วบทต่อๆไปเราจะมาเขียนโปรแกรมที่ต้องใช้พื้นฐานต่างๆที่ได้เรียนไป คุณจะได้คลายสังสัยแน่ๆ ต่อไป บทที่ 3 ครับ


ชมรมเว็บเพจไทย ตั้งใจมุ่งมั่น สร้างสรรค์เพื่อมวลสมาชิก



เริ่มนับ 20 พฤศจิกายน 2547 เวลา 24.00 น.
เว็บไซต์แห่งนี้ออกแบบสำหรับจอภาพที่มีความละเอียด 800x600 Pixel และ เปิดชมด้วย IE4.0 ขึ้นไป

ชมรมเว็บเพจไทย เป็นเว็บไซต์ที่จัดทำขึ้นเพื่อเผยแพร่ข่าวสารและสาระความรู้เกี่ยวกับการสร้างเว็บไซต์ ให้แด่สมาชิกและผู้สนใจทั่วไป
โดยไม่หวังผลประโยชน์ทางธุระกิจ [Non Profit Organization] ก่อตั้งเมื่อวันที่ 16 ตุลาคม พ.ศ. 2540
ข้อมูลข่าวสาร บทความ และภาพประกอบ ที่ไม่อ้างถึงเจ้าของลิขสิทธิ์ สามารถนำไปใช้ได้โดยไม่ต้องขออนุญาต [Non Copyright]