รายการด้านล่างนี้คือฟังก์ชันมาตรฐานบางส่วนสำหรับการจัดการไดเร็กทอรี:
opendir DIRHANDLE, EXPR # เปิดไดเร็กทอรี readdir DIRHANDLE # อ่านไดเร็กทอรี rewinddir DIRHANDLE # วางตำแหน่งตัวชี้ไปที่จุดเริ่มต้น telldir DIRHANDLE # คืนตำแหน่งปัจจุบันของไดเร็กทอรี searchdir DIRHANDLE, POS # ค้นหาตำแหน่ง POS ที่ระบุไปยังไดเร็กทอรีที่ปิด DIRHANDLE # ปิด ไดเรกทอรี
แสดงไฟล์ทั้งหมด
แสดงไฟล์ทั้งหมดในไดเร็กทอรี ตัวอย่างต่อไปนี้ใช้ตัวดำเนินการ glob ดังที่แสดงด้านล่าง:
ตัวอย่าง
#!/usr/bin/perl # แสดงไฟล์ทั้งหมดในไดเร็กทอรี /tmp $dir = " /tmp/ * " ; @files = โกลบอล ( $ผบ ) ; ( @files ) { พิมพ์ $_ . " n " ; # แสดงไฟล์ทั้งหมดที่ลงท้ายด้วย .c ในไดเร็กทอรี /tmp $ dir = " /tmp/*.c " ; $ผบ ) ; ( @files ) { พิมพ์ $_ . " n " ; # แสดงไฟล์ที่ซ่อนทั้งหมด $ dir = " /tmp/.* " ; $ผบ ) ; ( @files ) { พิมพ์ $_ . " n " ; # แสดงไฟล์ทั้งหมดในไดเร็กทอรี /tmp และ /home $dir = " /tmp/* /home/* " ; @files = glob ( $ผบ ) ; ( @files ) { พิมพ์ $_ . " n " ; ตัวอย่างต่อไปนี้แสดงรายการไฟล์ทั้งหมดในไดเร็กทอรีปัจจุบัน:
ตัวอย่าง
#!/usr/bin/perl opendir ( ผบ. , ' . ' ) หรือ ตาย " ไม่สามารถเปิดไดเรกทอรีได้, $ ! " ; ( $file = readdir ผบ. ) - พิมพ์ " $ไฟล์ n " ; ปิดแล้ว ดีไออาร์ ; หากคุณต้องการแสดงไฟล์ทั้งหมดที่ลงท้ายด้วย .c ในไดเร็กทอรี /tmp คุณสามารถใช้โค้ดต่อไปนี้:
ตัวอย่าง
#!/usr/bin/perl opendir ( DIR , ' . ' ) หรือ ตาย " ไม่สามารถเปิดไดเรกทอรีได้, $ ! " ; ( เรียงลำดับ grep ( /^.*.c $ /, readdir ( DIR ) ) ) { พิมพ์ " $_ n " ; ปิดแล้ว ดีไออาร์ ; สร้างไดเร็กทอรีใหม่
เราสามารถใช้ฟังก์ชัน mkdir เพื่อสร้างไดเร็กทอรีใหม่ คุณต้องมีสิทธิ์เพียงพอในการสร้างไดเร็กทอรีก่อนดำเนินการ:
ตัวอย่าง
#!/usr/bin/perl $dir = " /tmp/perl " ; # สร้างไดเร็กทอรี Perl ใต้ไดเร็กทอรี /tmp mkdir ( $ผบ - หรือ ตาย " ไม่
สามารถ สร้าง ไดเรกทอรี $dir ,
$! " ; " สร้างไดเรกทอรีเรียบร้อยแล้ว n " ; ลบไดเรกทอรี
เราสามารถใช้ฟังก์ชัน rmdir เพื่อลบไดเรกทอรีได้ จำเป็นต้องมีการอนุญาตที่เพียงพอในการดำเนินการนี้ นอกจากนี้ ไดเร็กทอรีที่จะลบจะต้องเป็นไดเร็กทอรีว่าง:
ตัวอย่าง
#!/usr/bin/perl $dir = " /tmp/perl " ; # ลบไดเร็กทอรี Perl ใต้ไดเร็กทอรี /tmp rmdir ( $ผบ - หรือ ตาย " ไม่
สามารถ ลบ ไดเรกทอรี $dir ,
$! " ; " ลบไดเรกทอรีเรียบร้อยแล้ว n " ; สลับไดเรกทอรี
เราสามารถใช้ฟังก์ชัน chdir เพื่อสลับไดเร็กทอรีปัจจุบันได้ จำเป็นต้องมีการอนุญาตที่เพียงพอในการดำเนินการนี้ ตัวอย่างมีดังนี้:
ตัวอย่าง
#!/usr/bin/perl $dir = " /home " ; # ย้ายไดเร็กทอรีปัจจุบันไปยังไดเร็กทอรี /home ชดีร์ ( $ผบ - หรือ ตาย " ไม่
สามารถ เปลี่ยนไดเรกทอรีเป็น $dir , $! " ; " ไดเร็กทอรีที่คุณอยู่ในปัจจุบันคือ $dir n " ; เมื่อรันโปรแกรมข้างต้น ผลลัพธ์ที่ได้คือ:
ไดเร็กทอรีที่คุณอยู่ในปัจจุบันคือ /home