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

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

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

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

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

 
Updated: 16/10/2545


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

1. พื้นฐานการใช้งาน Perl

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

  1. การเรียกใช้ perl จาก Command line ของ DOS
  2. สร้างโปรแกรม CGI อย่างง่ายๆ ให้แสดงผลที่หน้าจอบราวเซอร์ได้
  3. การเรียกใช้โปรแกรม CGI โดยใช้บราวเซอร์
  4. การลดปริมาณการใช้คำสั่ง print
  5. การเขียน comment หรือหมายเหตุในโปรแกรม
  6. ข้อควรระวังในการใช้เครื่องหมาย @ และ " ในโปรแกรม CGI

เนื่องจาก Perl ก็คล้ายโปรแกรมบน DOS โปรแกรมหนึ่ง เวลาที่ทำงานจะทำงานอยู่เบื้องหลัง ถ้าไม่มีการเรียกใช้ ก็จะไม่ทำงาน เราสามารถเรียกใช้ใน Perl ด้วย Command line แบบคำสั่ง DOS ได้ ลองทำดูแล้วกันจะได้เห็นภาพ ให้คุณเปิด Notepad แล้วพิมพ์ print "hello my perl"; จากนั้น save ไฟล์ โดยใช้ชื่อ test.pl ไว้ที่ใหนก็ได้ยกเว้น desktop แล้วเข้าไปที่ DOS prompt  ใช้คำสั่ง cd ของ DOS ย้ายไป directory ที่คุณเก็บไฟล์  test.pl ไว้ พิมพ์คำว่า  perl test.pl ที่ DOS prompt จากนั้นกด Enter 1 ครั้ง คุณก็จะพบกับคำว่า hello my perl   ที่ได้พิมพ์ไป  ถ้าคุณยังต้องการลองอีกผมมีให้อีก 5 ไฟล์ คลิ้กเพื่อ download ได้เลยครับทุกไฟล์ขนาดไม่เกิน 1kb

play1.pl - play2.pl - play3.pl - play4.pl - play5.pl

หลังจากที่เราลองเรียกโปรแกรมภาษา Perl โดยใช้ Command line แล้วก็พอแค่นี้แล้วกันนะครับ เพราะไม่ใช่จุดประสงค์ที่เราจะ เรียนรู้กันจริงๆ ที่เราต้องการเรียนคือการใช้ภาษา perl เขียนโปรแกรม CGI ที่สามารถแสดงผลออกมาที่ Browser ได้จะทำอย่าง ไรนั้นมาดูกันเลยครับ ให้คุณเปิดไฟล์ test.pl ขึ้นมาอีกครั้งแล้วเติม code เหล่านี้ลงไปให้ได้ผลทั้งหมดออกมาดังนี้นะครับ


print "Content-type:text/html\n";
print "<html><head><title></title></head>
\n";
print "<body>
\n ";
print "hello my perl
\n";
print "</body></html>
\n";

หมายเหตุ ส่วนที่เป็น
\n คือคำสั่งการขึ้นบรรทัดใหม่ ถ้าไม่ใส่ก็ไม่เป็นไรแต่ผลของโปรแกรมที่ส่งมาให้บราวเซอร์ เมื่อ view source ดูเห็นติดกันหมดเป็นบรรทัดเดียว

เมื่อเสร็จแล้วให้ save as เป็นไฟล์ test2.pl โดยไฟล์นี้ให้เก็บไว้ใน directory ที่คุณกำหนดไว้ให้เป็น cgi-bin หรือ directory อื่นที่สามารถ execute ไฟล์ได้ (ห้ามงงนะผมบอกก่อนแล้วว่าใคร จะเรียนต้องมีพื้นฐานมาบ้าง ถ้างงให้ไปอ่านในส่วนของ ASP ก่อนจะอยู่ในหัวข้อย่อย แนะนำ -> กำหนดคุณสมบัติของ Folder) จากนั้นให้คุณพิมพ์เรียกในบราวเซอร์ดังนี้ http://you-server-name/cgi-bin/test2.pl อย่าซื่อนะครับ you-server-name คือชื่อ server ที่คุณตั้งไว้ ถ้าไม่รู้ให้แทนส่วนนี้ด้วยเลข 127.0.0.1 ซึ่งส่วนมากจะใช้ได้ และถ้าคุณไม่ได้ใช้ cgi-bin ให้แทนด้วยอันอื่นที่คุณใช้เช่น script เป็นต้น เน้น!! การเรียกใช้ test2.pl หรือไฟล์ .pl อื่นๆ ที่จะสอนต่อไปให้เรียกจาก server เท่านั้น โดยการพิมพ์ เรียกลักษณะดังตัวอย่าง การเปิดแบบเปิดไฟล์มันจะไม่ทำงาน (ไม่เชื่อลองดู) เมื่อคุณเรียกโดยผ่านบราวเซอร์แล้วจะปรากฎเป็นคำว่า hello my perl ขึ้นมาบนหน้าจอ จะเห็นว่าในขณะนี้คุณสามารถใช้ perl เขียนโปรแกรมให้แสดงข้อความบนหน้าจอบราวเซอร์ได้แล้ว เรามาดูรายละเอียดกันว่าทำไมถึงได้ และได้มาอย่างไร


ข้อตกลง ต่อไปเมื่อคุณพบลิ้งค์ให้ download ไฟล์ที่มีนามสกุล .pl และ .pl.txt ให้คุณ download และ save ไฟล์เหล่านั้นไว้ใน cgi-bin ของคุณ แต่ถ้าเป็นไฟล์ .htm ให้เก็บไว้ที่ root ของเว็บไซต์คุณในเครื่อง

เมื่อคุณกดปุ่ม Enter บราวเซอร์จะรับที่อยู่ URL ของ test2.pl ไปส่งให้ web server จากนั้น web server จะเรียก perl.exe ซึ่งเป็นตัวแปรภาษา perl ให้ทำการแปรคำสั่งในไฟล์ test2.pl เมื่อ perl.exe แปรเสร็จแล้ว จะส่งผลออกมาให้ web server และ ทำการปิดตัวเองลง เมื่อ web server ได้รับผลมาแล้วจะส่งผลนั้นกลับไปให้บราวเซอร์ที่เรียกในรูปของ html ไฟล์ เนื่องจากใน test2.pl มีการกำหนดคำสั่งด้วย print "Content-type:text/html\n\n"; เพราะฉะนั้นการที่จะเขียน cgi ด้วย perl ให้แสดงผลที่หน้าจอบราวเซอร์จะต้องใส่คำสั่ง print "Content-type:text/html\n\n"; ลงไปด้วย

หมายเหตุ สำหรับผู้ใช้ UNIX ต้องใส่บรรทัดแรกของทุกโปรแกรมด้วย #!/usr/bin/perl หรือที่คล้ายๆแบบนี้ ซึ่งบรรทัดนี้คือ คำสั่งที่บอกให้ server ไปเรียกโปรแกรมสำหรับแปลภาษา Perl ให้ทำงานง่ายๆ ก็คือที่อยู่ของตัวโปรแกรม perl.exe นั่นเอง ถ้าไม่ รู้ให้ถามผู้ดูแล server หรือ ใช้คำสั่ง whereis perl สำหรับผู้ใช้ Windows 95/98/NT ไม่ จำเป็นต้องใส่ อย่างนี้ 95/98/NT ฉลาดกว่า UNIX รึเปล่า ?

พอถึงตรงนี้ถ้าคุณเกิดความคิดว่าจะนำไฟล์ play*.pl มาดัดแปลงทำแบบไฟล์ test2.pl บ้าง เสียใจนะครับ ยังทำไม่ได้ตอนนี้ อย่าพึ่งใจร้อนดูส่วนต่อๆไปก่อนนะครับ ต่อไปเราลองมาเขียนหน้าที่มันใหญ่กว่านี้ดูดังต่อไปนี้นะครับ

print "Content-type:text/html\n\n";
print "<html><head><title>เขียน CGI ด้วย Perl</title></head>";
print "<body bgcolor=\"black\" text=\"white\">";
print "<center>";
print "ข้อความที่ต้องการแสดงบนหน้าจอบราวเซอร์ ถ้ามีเครื่องหมาย \@ หรือเครื่องหมาย \"<br>";
print "คุณจะต้องใช้เครื่องหมาย \ ใส่ไว้ข้างหน้าเครื่องหมายดังกล่าวด้วย ถ้าไม่ใส่จะเกิด error ขึ้น<br>";
print "ในการใช้ภาษา Perl ถ้าคุณต้องการใส่ comment ให้ใช้เครื่องหมาย # ใส่ไว้ข้างหน้าบรรทัดที่<br>";
print "ต้องการ comment ดูตัวอย่างที่กล่าวมาแล้วทั้งหมดได้ใน source code ของไฟล์นี้ (test3.pl)<br>";
print "</center>";
print "</body></html>";

copy source code ข้างบนนี้แล้ว paste ลงใน notepad แล้ว save เป็นไฟล์ test3.pl จากนั้นลองเรียกดูด้วย บราวเซอร์นะครับ เป็นไปตามที่บอกไว้ในไฟล์นะครับ ถึงตรงนี้ถ้าคุณเกิดความคิดขึ้นมาอีกว่า ไม่ต้องใช้คำสั่ง print กันตายเหรอ? ถ้ามีไฟล์ใหญ่ๆ ข้อความมากๆ คำตอบคือตายครับ ถ้าคุณใช้คำสั่ง print ผมมีวิธี แก้ให้ไม่ต้องใช้คำสั่ง print ดัง code ต่อไปนี้ครับ

print "Content-type:text/html\n\n";
print <<myHTML;
<html><head><title>เขียน CGI ด้วย Perl</title></head>
<body bgcolor=\"black\" text=\"white\">
<center>
ข้อความที่ต้องการแสดงบนหน้าจอบราวเซอร์ ถ้ามีเครื่องหมาย \@ หรือเครื่องหมาย \"<br>
คุณจะต้องใช้เครื่องหมาย \ ใส่ไว้ข้างหน้าเครื่องหมายดังกล่าวด้วย ถ้าไม่ใส่จะเกิด error ขึ้น<br>
ในการใช้ภาษา Perl ถ้าคุณต้องการใส่ comment ให้ใช้เครื่องหมาย # ใส่ไว้ข้างหน้าบรรทัดที่<br>
ต้องการ comment ดูตัวอย่างที่กล่าวมาแล้วทั้งหมดได้ใน source code ของไฟล์นี้ (test4.pl)<br>
</center>
</body></html>
myHTML

# จะเห็นว่าแบบนี้ใช้คำสั่ง print น้อยลง ส่วนที่เป็นคำว่า myHTML จะเปลี่ยนเป็นคำอื่นที่คุณต้องการ
# ก็ได้ เช่น ENDHTML เป็นต้น จาก code จะเห็นว่าต้องใส่ myHTML สองที่คือเริ่มต้นและสิ้นสุด
# ดูในตัวอย่างนะครับ

copy source code ข้างบนนี้แล้ว paste ลงใน notepad แล้ว save เป็นไฟล์ test4.pl จากนั้นลองเรียกดูด้วย บราวเซอร์นะครับ เป็นไปตามที่บอกไว้ในไฟล์นะครับ แต่จะเห็นว่าง่ายกว่าตั้งเยอะ ระวังเครื่องหมาย @ และ " ในไฟล์ด้วยนะครับถ้ามีต้องใส่ \ ไว้ข้างหน้า เช่น

print "<a href=\"http://www.thaitop.com\">HOME</a>"; หรือ
print "<a href=\"mailto:webmaster\@thaitop.com\">Mail Me</a>";

จบบทที่ 1 แล้วครับ ลองถามตัวเองทำอะไรได้บ้าง ถ้าส่ายหัวเลิกลั่กละก็ อ่านใหม่ ลองทำใหม่จนกว่าจะทำได้ ก่อนข้ามไป บทที่ 2 นะครับ เดี๋ยวจะหาว่าโหด


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



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

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