Chapter 10. การดำเนินจัดการ file ข้อมูล

                  Perl มีความสามารถเปิด file ใน server เพื่ออ่าน เขียน แก้ไข หรือสร้าง file ใหม่ได้ ตัวอย่างเช่น Programe
Counter สำหรับนับตัวเลขผู้เข้าเยี่ยมชม Website หลักการคือเปิด file นับตัวเลขใน file เขียนทับลงไปใหม่ แล้วรายงานจำนวนผู้เยี่ยมชมออกทางหน้า Website เป็นต้น

                คำสั่งที่เกี่ยวข้องกับการดำเนินการจัดการ file ข้อมูลมีดังนี้

  • open   เปิด file
  • close   ปิด file
  • >   เขียน file ใหม่ หรือ ถ้ามี file เก่าอยู่แล้วก็เขียนทับ file เก่า
  • >> เขียนต่อจาก file เก่า

โดยมีรูปแบบและวิธีการใช้ดังนี้ ....

open และ close

คำสั่ง open จะเปิด file ที่มีอยู่แล้ว สามารถใช้ได้ทั้ง Unix และ Windows

ถ้าเป็น Unix จะต้องคำนึงถึง Ower สิทธิผู้ใช้ด้วย เช่น ถ้าไม่ใช่เจ้าของ file ก็ไม่สามารถเปิด file นั้นอ่านได้

แต่ถ้าเป็น windows ไม่ต้อง คำนึงถึงเรื่องนี้

ดังจะได้กล่าว ต่อไป

รูปแบบคำสั่ง open และ close  file เพื่ออ่านอย่างเดียว

open( FILE , "..path.. filename" );

ตัวอย่าง

open.pl

#!/usr/bin/perl
print "Content-type: text/html\n\n";

open(File,"data.dat");

@AllFile = <File>;

close(File);

print "@AllFile";

 

ผลลัพธ์

150

คำอธิบาย

คำสั่ง open จะเปิด file ที่ชื่อ data.dat แล้วเก็บไว้ตัวแปร file

(ภายใน file data.dat   มีข้อความว่า 150 )

จากนั้นก็จะเก็บค่าของชุดตัวแปร File ทั้งหมดไว้ในตัว Array @Allfile

เสร็จแล้วก็ close file

สั่งพิมพ์ค่าของ @Allfile ทั้งหมดออกทางจอภาพ

ถ้าเป็น server Unix/Linux จะต้อง changemode ให้เป็น 777

โดยใช้คำสั่ง chmod 777 data.dat

( 777 หมายความว่า ใครก็ได้สามารถ เขียน อ่าน file data.dat ได้)

สร้างหรือเขียน file ใหม่

เราใช้เครื่องหมาย   ">"  เพื่อเขียน file ใหม่กรณีที่ไม่มี file เก่า ถ้ามี file เก่าก็จะเขียนทับลงไป

รูปแบบคำสั่ง

open( FILE , "..path.. />filename" );

ตัวอย่าง

write.pl

#!/usr/bin/perl
print "Content-type: text/html\n\n";

$newdata = 160;

open(File,">data1.dat");
print File "$newdata\n";
close(File);


open(File,"data1.dat");
@AllFile = <File>;
close(File);

print "@AllFile";

ผลลัพธ์

160

คำอธิบาย

  1. กำหนดตัวแปร $newdata = 160
    คำสั่ง open ครั้งแรกจะเปิด file ที่ชื่อ data1.dat
    หรือสร้าง file ใหม่ขึ้นมาถ้าไม่มี data1.dat
    จากนั้นก็เอาค่าตัวแปร $newdata พิมพ์ลงใน data1.dat
    เสร็จแล้วก็ close file

  2. คำสั่ง open ครั้งที่ 2 จะเปิด file ที่ชื่อ data1.dat แล้วเก็บไว้ตัวแปร file
    จากนั้นก็จะเก็บค่าของชุดตัวแปร File ทั้งหมดไว้ในตัว Array @Allfile
    เสร็จแล้วก็ close file
    สั่งพิมพ์ค่าของ @Allfile ทั้งหมดออกทางจอภาพ

 

เขียนข้อความต่อจาก file เก่า

เราใช้เครื่องหมาย   ">>"  เพื่อเขียน file ต่อจาก file เก่า

รูปแบบคำสั่ง

open( FILE , "..path.. />>filename" );

ตัวอย่าง

rewrite.pl

#!/usr/bin/perl
print "Content-type: text/html\n\n";

$newdata = 170;

open(File,">>data2.dat");
print File "$newdata\n<br>";
close(File);


open(File,"data2.dat");
@AllFile = <File>;
close(File);

print "@AllFile";

ผลลัพธ์

160

170

คำอธิบาย

  1. กำหนดตัวแปร $newdata = 170
    คำสั่ง open ครั้งแรกจะเปิด file ที่ชื่อ data2.dat
    จากนั้นก็เอาค่าตัวแปร $newdata พิมพ์ต่อท้ายข้อความใน data1.dat
    เสร็จแล้วก็ close file

  2. คำสั่ง open ครั้งที่ 2 จะเปิด file ที่ชื่อ data2.dat แล้วเก็บไว้ตัวแปร file
    จากนั้นก็จะเก็บค่าของชุดตัวแปร File ทั้งหมดไว้ในตัว Array @Allfile
    เสร็จแล้วก็ close file
    สั่งพิมพ์ค่าของ @Allfile ทั้งหมดออกทางจอภาพ

Copy right Passkorn Roungrong 2000