perlnewmod - Online în cloud

Aceasta este comanda perlnewmod care poate fi rulată în furnizorul de găzduire gratuit OnWorks folosind una dintre multiplele noastre stații de lucru online gratuite, cum ar fi Ubuntu Online, Fedora Online, emulator online Windows sau emulator online MAC OS

PROGRAM:

NUME


perlnewmod - pregătirea unui nou modul pentru distribuție

DESCRIERE


Acest document vă oferă câteva sugestii despre cum să scrieți module Perl,
pregătirea lor pentru distribuție și punerea lor la dispoziție prin CPAN.

Unul dintre lucrurile care îl fac pe Perl cu adevărat puternic este faptul că hackerii Perl tind să facă acest lucru
doresc să împărtășească soluțiile la problemele cu care s-au confruntat, astfel încât tu și cu mine să nu fim nevoiți să luptăm
cu aceeasi problema din nou.

Principalul mod în care fac acest lucru este prin abstractizarea soluției într-un modul Perl. Dacă nu
știți care este unul dintre acestea, restul acestui document nu vă va fi de mare folos.
De asemenea, pierdeți o mulțime de coduri utile; luați în considerare să aruncați o privire la perlmod,
perlmodlib și perlmodinstall înainte de a reveni aici.

Când ați descoperit că nu există un modul disponibil pentru ceea ce încercați să faceți și
a trebuit să scrieți singur codul, luați în considerare ambalarea soluției într-un modul
și încărcarea acestuia în CPAN, astfel încât alții să poată beneficia.

De asemenea, ar trebui să aruncați o privire la perlmodstyle pentru cele mai bune practici în realizarea unui modul.

avertizare
Ne vom concentra în primul rând pe modulele numai Perl aici, mai degrabă decât pe modulele XS. XS
modulele servesc unui scop destul de diferit și ar trebui să luați în considerare lucruri diferite înainte
distribuirea lor - popularitatea bibliotecii pe care o lipiți, portabilitatea către altele
sisteme de operare și așa mai departe. Cu toate acestea, notele despre pregătirea părții Perl a modulului
iar ambalarea și distribuirea acestuia se va aplica la fel de bine unui modul XS ca și pur-Perl
unul.

Ce I face în a modul?
Ar trebui să faceți un modul din orice cod despre care credeți că va fi util altora.
Orice lucru care ar putea umple o gaură în biblioteca comunală și pe care altcineva poate
introduceți direct în programul lor. Orice parte a codului pe care o puteți izola și extrage
și conectați la altceva este un candidat probabil.

Să luăm un exemplu. Să presupunem că citiți date dintr-un format local într-un hash-of-
hashes în Perl, transformându-l într-un copac, plimbând arborele și apoi conductând fiecare nod la un
Acme Transmogrifier Server.

Acum, destul de mulți oameni au Acme Transmogrifier și a trebuit să-i scrii ceva
vorbiți despre protocolul de la zero - aproape sigur ați dori să transformați asta într-un modul.
Nivelul la care o prezentați depinde de dvs.: s-ar putea să doriți module la nivel de protocol
analog cu Net::SMTP care vorbește apoi cu modulele de nivel superior, similar cu Mail::Send.
Alegerea vă aparține, dar doriți să obțineți un modul pentru acel protocol de server.

Nimeni altcineva de pe planetă nu va vorbi despre formatul tău local de date, așa că putem ignora asta.
Dar ce zici de chestia din mijloc? Construirea structurilor arborescente din variabilele Perl și
atunci parcurgerea lor este o problemă generală, și dacă nimeni nu a scris deja un modul
care face asta, s-ar putea să doriți să modularizați și acel cod.

Așa că sperăm că acum aveți câteva idei despre ce este bine de modular. Să vedem acum
cum se face.

Pas cu pas: Pregătirea il sol
Înainte de a începe chiar să scoatem codul, există câteva lucruri pe care vom dori să le facem
avans.

Uită-te in jur
Sapă într-o grămadă de module pentru a vedea cum sunt scrise. Aș sugera să începem cu
Text::Tabs, deoarece se află în biblioteca standard și este drăguț și simplu, și apoi caută
la ceva un pic mai complex ca File::Copy. Pentru codul orientat obiect,
Modulele „WWW::Mechanize” sau „Email::*” oferă câteva exemple bune.

Acestea ar trebui să vă ofere o idee generală asupra modului în care modulele sunt așezate și scrise.

Verificati ca este nou
Există o mulțime de module pe CPAN și este ușor să pierdeți unul care este similar cu ce
intenționați să contribuiți. Să aveți un plug bun prin
<http://search.cpan.org> și asigură-te că nu tu ești cel care reinventează roata!

Discutați necesitatea
S-ar putea să-ți placă. S-ar putea să simți că toți ceilalți au nevoie de el. Dar s-ar putea să nu existe
de fapt, orice cerere reală pentru el acolo. Dacă nu sunteți sigur de cererea dvs
modulul va avea, luați în considerare trimiterea simțurilor pe „comp.lang.perl.modules”
grup de știri sau, ca ultimă soluție, întrebați lista de module la "modules@perl.org". Tine minte
că aceasta este o listă închisă cu un timp de răspuns foarte lung - fiți pregătit să așteptați a
bine pentru un răspuns de la ei.

Alegeți un nume
Modulele Perl incluse în CPAN au o ierarhie de denumire cu care ar trebui să încercați să vă încadrați.
Consultați perlmodlib pentru mai multe detalii despre cum funcționează acest lucru și răsfoiți CPAN și
lista de module pentru a vă simți. Cel puțin, rețineți acest lucru: modulele ar trebui să fie
titlul cu majusculă, (This::Thing) se încadrează într-o categorie și explică scopul acestora
succint.

Verificați din nou
În timp ce faci asta, asigură-te cu adevărat că nu ai ratat un modul similar cu
unul pe care urmează să-l scrii.

Când ți-ai rezolvat numele și ești sigur că modulul tău este dorit și nu
disponibil în prezent, este timpul să începeți codarea.

Pas cu pas: Efectuarea il modul
Începe cu modul de pornire or h2xs
modul de pornire utilitarul este distribuit ca parte a pachetului Module::Starter CPAN.
Acesta creează un director cu stub-uri ale tuturor fișierelor necesare pentru a porni un nou modul,
conform „cele mai bune practici” recente pentru dezvoltarea modulelor și este invocată din
linie de comandă, astfel:

module-starter --module=Foo::Bar
--author="Numele tău" --email=numele tau@cpan.org

Dacă nu doriți să instalați pachetul Module::Starter din CPAN, h2xs este un mai în vârstă
instrument, destinat inițial pentru dezvoltarea modulelor XS, care vine împreună cu
distribuția Perl.

O invocare tipică a h2xs pentru un modul Perl pur este:

h2xs -AX --skip-exporter --use-new-tests -n Foo::Bar

„-A” omite codul Autoloader, „-X” omite elementele XS, „--skip-exporter” omite
Codul exportatorului, „--use-new-tests” creează un mediu de testare modern, iar „-n”
specifică numele modulului.

Utilizați strict și avertismente
Codul unui modul trebuie să fie avertisment și strict-curat, deoarece nu puteți garanta
condițiile în care va fi folosit. În plus, nu ați dori să distribuiți acest cod
oricum nu a fost avertisment sau strict-curat, nu?

Folosește Crap
Modulul Carp vă permite să vă prezentați mesajele de eroare de la apelant
perspectivă; aceasta vă oferă o modalitate de a semnala o problemă cu apelantul și nu cu dvs
modul. De exemplu, dacă spui asta:

avertizează „Niciun nume de gazdă dat”;

utilizatorul va vedea ceva de genul acesta:

Niciun nume de gazdă dat la /usr/local/lib/perl5/site_perl/5.6.0/Net/Acme.pm
linia 123.

care pare că modulul tău face ceva greșit. În schimb, vrei să pui
da vina pe utilizator și spune asta:

Niciun nume de gazdă dat la bad_code, linia 10.

Faceți acest lucru folosind Carp și înlocuind „avertismentele” cu „crap”. Dacă ai nevoie să
„mor”, spune în schimb „croacă”. Cu toate acestea, păstrați „avertizează” și „mor” în loc pentru sănătatea ta
verificări - unde este cu adevărat modulul dumneavoastră de vină.

Utilizați Exporter - cu înțelepciune!
Exporter vă oferă o modalitate standard de a exporta simboluri și subrutine din modulul dvs
în spațiul de nume al apelantului. De exemplu, a spune „utilizați Net::Acme qw(&frob)”.
importa subrutina „frb”.

Variabila pachetului @EXPORT va determina ce simboluri vor fi exportate atunci când
Apelantul spune pur și simplu „utilizați Net::Acme” - aproape că veți dori niciodată să introduceți ceva
Acolo. @EXPORT_OK, pe de altă parte, specifică ce simboluri sunteți dispus să exportați.
Dacă doriți să exportați o mulțime de simboluri, utilizați %EXPORT_TAGS și definiți un standard
set de export - uitați-vă la Exportator pentru mai multe detalii.

Utilizați documentație veche simplă
Lucrarea nu se termină până când nu se termină documentele și va trebui să le pui
ceva timp scriind o documentație pentru modulul dvs. „module-starter” sau „h2xs” va
furnizați un talon pe care să îl completați; dacă nu ești sigur de format, uită-te la perlpod
pentru o introducere. Furnizați un rezumat bun al modului în care modulul dvs. este utilizat în cod, a
descriere și apoi note despre sintaxa și funcția subrutinelor individuale sau
metode. Utilizați comentariile Perl pentru notele dezvoltatorului și POD pentru notele utilizatorului final.

Scrie teste
Sunteți încurajat să creați autotestări pentru modulul dvs. pentru a vă asigura că funcționează
destinate nenumăratelor platforme suportate de Perl; dacă încărcați modulul în CPAN, a
o mulțime de testeri vă vor construi modulul și vă vor trimite rezultatele testelor. Din nou,
„module-starter” și „h2xs” oferă un cadru de testare pe care îl puteți extinde - ar trebui
faceți ceva mai mult decât să verificați că modulul va fi compilat. Test::Simplu si
Test::Mai multe sunt locuri bune pentru a începe când scrieți o suită de teste.

Scrieți README
Dacă încărcați în CPAN, gremlin-urile automate vor extrage fișierul README și
plasați asta în directorul dvs. CPAN. Va apărea și în principal prin modul și de-
categorie directoare dacă ajungi în lista de module. Este o idee bună să puneți aici
ceea ce face modulul în detaliu și modificările vizibile de utilizator de la ultima
eliberare.

Pas cu pas: distribuirea ta modul
Obțineți un ID de utilizator CPAN
Fiecare dezvoltator care publică module pe CPAN are nevoie de un ID CPAN. Vizita
"http://pause.perl.org/", selectați „Solicitare cont PAUZĂ” și așteptați solicitarea dvs
să fie aprobat de administratorii PAUSE.

"perl Makefile.PL; face test; face dist"
Încă o dată, „module-starter” sau „h2xs” a făcut toată treaba pentru tine. Ei produc
„Makefile.PL” standard pe care îl vedeți când descărcați și instalați module, iar acest lucru produce
un Makefile cu o țintă „dist”.

Odată ce v-ați asigurat că modulul dvs. trece propriile teste - întotdeauna un lucru bun de făcut
sigur - puteți „fake dist”, iar Makefile, sperăm, vă va produce un tarball frumos
al modulului dvs., gata pentru încărcare.

Încărcați tarball-ul
E-mailul primit când ați primit ID-ul CPAN vă va spune cum să vă conectați la PAUSE,
serverul Perl Authors Upload. Din meniurile de acolo, vă puteți încărca modulul în
CPAN.

Anunțați în lista de module
Odată încărcat, acesta va rămâne neobservat în directorul dvs. de autor. Dacă vrei să fie conectat
la restul CPAN, va trebui să accesați „Înregistrați spațiu de nume” în PAUSE. O singura data
înregistrat, modulul dvs. va apărea în listele de module și categorii de pe CPAN.

Anuntati la clpa
Dacă aveți o dorință arzătoare de a spune lumii despre eliberarea dvs., postați un anunț
la grupul de știri moderat „comp.lang.perl.announce”.

Remediază erorile!
Odată ce începeți să acumulați utilizatori, aceștia vă vor trimite rapoarte de eroare. Dacă ești norocos,
chiar iti vor trimite plasturi. Bine ați venit la bucuriile de a menține un proiect software...

Utilizați perlnewmod online folosind serviciile onworks.net



Cele mai recente programe online Linux și Windows