Pada intinya, ekstensi file yang Anda gunakan tidak membuat perbedaan tentang bagaimana perlmenafsirkan file-file itu.
Namun, meletakkan modul dalam .pmfile mengikuti struktur direktori tertentu yang mengikuti nama paket memberikan kemudahan. Jadi, jika Anda memiliki modul Example::Plot::FourDdan Anda meletakkannya di direktori Example/Plot/FourD.pmdi jalur di Anda @INC, maka usedan requireakan melakukan hal yang benar ketika diberi nama paket seperti di use Example::Plot::FourD.
File tersebut harus mengembalikan true sebagai pernyataan terakhir untuk menunjukkan keberhasilan eksekusi kode inisialisasi apa pun, jadi biasanya untuk mengakhiri file seperti itu dengan 1; kecuali Anda yakin itu akan mengembalikan true sebaliknya. Tetapi lebih baik hanya meletakkan 1;, jika Anda menambahkan lebih banyak pernyataan.
Jika EXPRbareword, anggaplah requireekstensi ".pm" dan ganti "::" dengan "/" di nama file Anda, untuk memudahkan memuat modul standar. Bentuk pemuatan modul ini tidak berisiko mengubah namespace Anda.
Yang perlu usedilakukan hanyalah mencari nama file dari nama paket yang disediakan, requiredalam BEGINblok dan memanggil importpaket. Tidak ada yang mencegah Anda untuk tidak menggunakan useselain mengambil langkah-langkah itu secara manual.
Misalnya, di bawah ini saya meletakkan Example::Plot::FourDpaket dalam sebuah file bernama t.pl, memuatnya dalam sebuah skrip dalam file s.pl.
C:\Temp> cat t.pl
package Example::Plot::FourD;
use strict; use warnings;
sub new { bless {} => shift }
sub something { print "something\n" }
"Example::Plot::FourD"
C:\Temp> cat s.pl
use strict; use warnings;
BEGIN {
require 't.pl';
}
my $p = Example::Plot::FourD->new;
$p->something;
C:\Temp> s
something
Contoh ini menunjukkan bahwa file modul tidak harus diakhiri 1, nilai true apa pun akan dilakukan.
1tidak apa-apa. Bisa2, bisa"foo", bisa["a", "list"]. Yang penting adalah tidak0, atau apa pun yang dinilai salah, atauuseakan gagal.