เริ่มเขียนโปรแกรมพื้นฐาน

ปรับปรุง : 2548-02-12 ()

บทเรียน ONLINE : การเขียนภาษา PERL
[ เริ่มเขียนโปรแกรมพื้นฐาน ]

  1. ข้อควรทราบ
  2. โปรแกรม perl ตัวแรก
  3. พิมพ์ 1 ถึง 10 แบบที่ 1
  4. พิมพ์ 1 ถึง 10 แบบที่ 2
  5. พิมพ์ 1 ถึง 10 แบบที่ 3
  6. พิมพ์เวลาปัจจุบัน
  7. พิมพ์เวลาปัจจุบัน เป็นภาษาไทย
  8. แบบฝึกหัด
ข้อควรทราบ
  1. โปรแกรมต่าง ๆ ในบทนี้เป็นโปรแกรมที่ มือสมัครเล่นทางการเขียนโปรแกรมจะคุ้นเคยกันพอสมควร แต่เนื้อหาในบทนี้ ตั้งใจแนะนำรูปลักษณ์บางอย่างของ perl ให้ทราบ อยากให้ผู้ศึกษามีความรู้สึกแรกเลยว่า ภาษานี้ง่าย เหมือนที่ผมรู้สึก
  2. เมื่อเขียนเสร็จแล้วอย่าลืมทำให้แฟ้มที่ท่าน save มีคุณลักษณะแบบ 777 หรือ 755 ซึ่งเป็นการกำหนดสิทธิของแฟ้ม ให้ประมวลผลได้ ซึ่งมีวิธีกำหนดสิทธิอธิบายร่วมกับเรื่องของ ws_ftp หรือจะใช้วิธีอื่นก็ได้นะครับที่ถนัด แต่ใครที่มี web server บน pc ที่อนุญาติ perl ก็ไม่จำเป็นต้องกำหนดสิทธิแต่อย่างใด
  3. สำหรับ hypermart ผมสังเกตุว่า เมื่อส่งเข้าไปแล้ว ถ้าเป็น perl จะกำหนดสิทธิเป็น 755 ให้ทันที ถ้าใครใช้ perl ทดสอบโปรแกรมในบทนี้ก็ไม่จำเป็นต้องเปลี่ยนอะไร ส่งเข้าไปก็ใช้ได้ทันทีครับ
ตัวอย่างแสดงจุด ที่ให้พิมพ์ชื่อโปรแกรม perl ใน browser
Netscape

Internet Explorer

โปรแกรม perl ตัวแรก
ขอให้ถือว่าโปรแกรมนี้เป็นโปรแกรม perl ตัวแรกของชีวิต ที่ต้อง run ให้ออกเลยนะครับ
เพราะผมไม่มีโปรแกรมที่ง่าย และดูดีกว่านี้อีกแล้ว และถ้า run โปรแกรมนี้ออก ค่อยเริ่มบทเรียนอื่นต่อนะครับ
ให้ save ตัวอย่าง 4 บรรทัดนี้ เป็นไฟล์ชื่อ lct.pl เก็บไว้ในห้อง /perl ที่ xxx.hypermart.net
โดยสมมุติให้ xxx เป็นชื่อ account ของผู้ศึกษาเอง เมื่อส่งเข้าไป ให้ส่งเข้าไปแบบ text เพราะถ้าส่งแบบ binary จะมีปัญหา
ตัวอย่าง ทดลอง run perl ตัวนี้โดยการเปิดเว็บนี้ใน browser เช่น http://thaiwebsearch.hypermart.net/perl/lct.pl
บนจอภาพจะปรากฎคำว่า Tue Oct 26 20:50:41 1999 ซึ่งเป็นผลลัพธ์ เพราะผมลองโปรแกรมนี้ในวันเวลาดังกล่าว
แต่เวลานี้เป็นเวลาของเครื่อง server ในต่างประเทศนะครับ ไม่ใช่เวลาที่นาฬิกาข้อมือของผม
ตัวอย่างคำสั่ง อธิบายคำสั่ง
#!/usr/local/bin/perl
print"Content-type:text/html\n\n";
$lct = localtime(time);
print $lct;
กำหนดให้ server เรียก perl ใน directory นั้นมาประมวลผล
สั่งพิมพ์บรรทัดนี้ เพื่อผลบนเว็บถูกต้อง แต่จะไม่แสดงอะไรในเว็บนะครับ
ให้ฟังก์ชั่น localtime เรียกเวลาไปเก็บในตัวแปร $lct
พิมพ์ตัวแปร $lct ซึ่งเป็นผลลัพธ์ทางเว็บ
Click ทดสอบโปรแกรม
พิมพ์ 1 ถึง 10 แบบที่ 1
ตัวอย่างการทำซ้ำด้วย for
ตัวอย่างคำสั่ง อธิบายคำสั่ง
#!/usr/local/bin/perl
print"Content-type:text/html\n\n";
for $i (1 .. 10) {
print $i;
print "<br>";
}
ตัวอย่างนี้แสดงการพิมพ์ 1 ถึง 10
บรรทัดละจำนวน ด้วยคำสั่ง for
Click ทดสอบโปรแกรม
พิมพ์ 1 ถึง 10 แบบที่ 2
ตัวอย่างการทำซ้ำด้วย for ซึ่งมีรูปแบบใกล้เคียงกับภาษา C
ตัวอย่างคำสั่ง อธิบายคำสั่ง
#!/usr/local/bin/perl
print"Content-type:text/html\n\n";
for ($i=1; $i <= 10; $i++) {
print $i,"<br>";
}
ตัวอย่างนี้แสดงการพิมพ์ 1 ถึง 10
บรรทัดละจำนวน ด้วยคำสั่ง for
Click ทดสอบโปรแกรม
พิมพ์ 1 ถึง 10 แบบที่ 3
ตัวอย่างการทำซ้ำด้วย while
ตัวอย่างคำสั่ง อธิบายคำสั่ง
#!/usr/local/bin/perl
print"Content-type:text/html\n\n";
$i = 1;
while ($i <= 10) {
print $i,"<br>";
$i++;
}
ตัวอย่างนี้แสดงการพิมพ์ 1 ถึง 10
บรรทัดละจำนวน ด้วยคำสั่ง while
Click ทดสอบโปรแกรม
พิมพ์เวลาปัจจุบัน
ให้ผู้ใช้ทดเวลาเอาเองจนกระทั่งเท่าเวลาที่นาฬิกาข้อมือขอตนเอง
ด้วยการใช้ + หรือ - time ใน ฟังก์ชั่น localtime ดังตัวอย่างข้างล่าง
ตัวอย่างคำสั่ง อธิบายคำสั่ง
#!/usr/local/bin/perl
print"Content-type:text/html\n\n";
$lct = localtime(time);
print "Server time : ",$lct,"<br>";
$lct = localtime(time + 3600);
print "Your time : ",$lct,"<br>";
($sec,$min,$hr,$day,$month,$year,$dofw,$dofy,$sm)=localtime(time);
print "sec : ",$sec,"<br>";
print "min : ",$min,"<br>";
print "hr : ",$hr,"<br>";
print "day : ",$day,"<br>";
print "month : ",$month,"<br>";
print "year : ",$year,"<br>";
print "day of week : ",$dofw,"<br>";
print "day of year : ",$dofy,"<br>";
print "some : ",$sm,"<br>";
พิมพ์เวลาปัจจุบัน
จะเห็นว่า 3600 เท่ากับ 1 ชั่วโมง
ตัวอย่างผลลัพธ์
Server time : Tue Oct 26 22:02:18 1999
Your time : Tue Oct 26 23:02:18 1999
sec : 18
min : 2
hr : 22
day : 26
month : 9
year : 99
day of week : 2
day of year : 298
some : 0
Click ทดสอบโปรแกรม
พิมพ์เวลาปัจจุบัน เป็นภาษาไทย
ถ้าท่านต้องการพิมพ์เวลาเป็น พ.ศ. และชื่อเดือนเป็นไทยล่ะก็ ตัวอย่างนี้ .. ใช่เลย
และยังแต่งเวลาให้เป็นเลข 2 หลัก เช่น เลข 3 ก็จะเปลี่ยนเป็น 03 ให้อัตโนมัติ
ตัวอย่างคำสั่ง อธิบายคำสั่ง
#!/usr/local/bin/perl
print"Content-type:text/html\n\n";
($sec,$min,$hr,$day,$mth,$yr,$dw,$dy,$sm)=localtime(time+36000);
if ($mth eq 0) { $m = 'มกราคม';}
if ($mth eq 1) { $m = 'กุมภาพันธ์';}
if ($mth eq 2) { $m = 'มีนาคม';}
if ($mth eq 3) { $m = 'เมษายน';}
if ($mth eq 4) { $m = 'พฤษภาคม';}
if ($mth eq 5) { $m = 'มิถุนายน';}
if ($mth eq 6) { $m = 'กรกฎาคม';}
if ($mth eq 7) { $m = 'สิงหาคม';}
if ($mth eq 8) { $m = 'กันยายน';}
if ($mth eq 9) { $m = 'ตุลาคม';}
if ($mth eq 10) { $m = 'พฤศจิกายน';}
if ($mth eq 11) { $m = 'ธันวาคม';}
$y = $yr + 2443;
print $day," ",$m," ",$y,"<br>";
if ($hr < 10) { print "0"; }
print $hr,":";
if ($min < 10) { print "0"; }
print $min,":";
if ($sec < 10) { print "0"; }
print $sec;
พิมพ์วันเวลาปัจจุบัน
โดยผ่านการจัดรูปแบบ
สังเกตุว่าเลขเดือนเริ่มจาก 0
ตัวอย่างผลลัพธ์
27 ตุลาคม 2542
08:24:02
Click ทดสอบโปรแกรม
แบบฝึกหัด
    ให้ทำตามโจทย์ต่อไปนี้
  1. พิมพ์ คำว่า this is my first program บนจอภาพ
  2. พิมพ์ เลข 1 ถึง 100 ด้วย while
  3. พิมพ์ วันเวลาแบบง่าย ๆ ให้ตรงตามนาฬิกาข้อมือของท่าน
  4. พิมพ์ วันเวลาที่ผ่านการจัดรูปแบบ ให้ตรงตามนาฬิกาข้อมือของท่าน
ผู้สนับสนุน + ผู้สนับสนุน
+ รับผู้สนับสนุน

แนะนำเว็บใหม่ : ผลการจัดอันดับ
รักลำปาง : thcity.com : korattown.com : topsiam.com : มหาวิทยาลัยโยนก
ศูนย์สอบ : รวมบทความ : ไอทีในชีวิตประจำวัน : ดาวน์โหลด : yourname@thaiall.com
ติดต่อ ทีมงาน ชาวลำปาง มีฝันเพื่อการศึกษา Tel.08-1992-7223