Apa perbedaan antara file .pm
(Perl module) dan .pl
(Perl script)?
Tolong beritahu saya juga mengapa kami kembali 1
dari file. Jika mengembalikan 2 atau yang lainnya, itu tidak menghasilkan kesalahan apa pun, jadi mengapa kita kembali 1
dari modul Perl?
perl
perl-module
pengguna380979
sumber
sumber
1
tidak apa-apa. Bisa2
, bisa"foo"
, bisa["a", "list"]
. Yang penting adalah tidak0
, atau apa pun yang dinilai salah, atauuse
akan gagal.Jawaban:
Pada intinya, ekstensi file yang Anda gunakan tidak membuat perbedaan tentang bagaimana
perl
menafsirkan file-file itu.Namun, meletakkan modul dalam
.pm
file mengikuti struktur direktori tertentu yang mengikuti nama paket memberikan kemudahan. Jadi, jika Anda memiliki modulExample::Plot::FourD
dan Anda meletakkannya di direktoriExample/Plot/FourD.pm
di jalur di Anda@INC
, makause
danrequire
akan melakukan hal yang benar ketika diberi nama paket seperti diuse Example::Plot::FourD
.Yang perlu
use
dilakukan hanyalah mencari nama file dari nama paket yang disediakan,require
dalamBEGIN
blok dan memanggilimport
paket. Tidak ada yang mencegah Anda untuk tidak menggunakanuse
selain mengambil langkah-langkah itu secara manual.Misalnya, di bawah ini saya meletakkan
Example::Plot::FourD
paket dalam sebuah file bernamat.pl
, memuatnya dalam sebuah skrip dalam files.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 #!/usr/bin/perl 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.sumber
A .pl adalah satu skrip.
Di .pm ( Perl Module ) Anda memiliki fungsi yang dapat Anda gunakan dari skrip Perl lainnya:
sumber