_ _    _ _____  ___   __                       
 __      _(_) | _(_)___ / ( _ ) / /_   ___ ___  _ __ ___  
 \ \ /\ / / | |/ / | |_ \ / _ \| '_ \ / __/ _ \| '_ ` _ \ 
  \ V  V /| |   <| |___) | (_) | (_) | (_| (_) | | | | | |
   \_/\_/ |_|_|\_\_|____/ \___/ \___(_)___\___/|_| |_| |_|

CPAN

Nel mondo di oggi, CPAN è diventato un argomento di interesse per molte persone. Dalla sua origine fino al suo impatto sulla società, CPAN ha generato un dibattito costante che richiede una profonda riflessione. In questo articolo esploreremo i diversi aspetti legati a CPAN, dalla sua storia alla sua attualità. Attraverso un'analisi dettagliata, cerchiamo di offrire una visione completa e obiettiva su CPAN, con l'obiettivo di fornire ai lettori una comprensione più ampia di questo argomento.
CPAN
sito web
URLwww.cpan.org/
Creato daJarkko Hietaniemi e Andreas König
Lancio1995

Il Comprehensive Perl Archive Network (CPAN) è un archivio software di oltre 250.000 moduli software e relativa documentazione, scritti Perl da oltre 12.000 contributori.[1] Il termine CPAN è spesso utilizzato sia per indicare l'archivio software vero e proprio che il programma Perl che funge da interfaccia con tale archivio e consente l'installazione automatizzata del software (una sorta di gestore di pacchetti). La maggior parte del software presente su CPAN è gratuito e open source.[2]

Storia

Creato da Jarkko Hietaniemi e Andreas König, questo vasto archivio di moduli, è online dal 26 ottobre 1995 [3]. Si ispira a CTAN (Comprehensive TeX Archive Network), un archivio simile ma dedicato ai file di formattazione TeX. Entrambi i progetti condividono l'obiettivo di creare un repository centralizzato e facilmente accessibile per una comunità di sviluppatori, fornendo loro un punto di riferimento unico per trovare e condividere risorse.[4]

Il sito viene relazionato come mirror in altri 228 server in tutto il mondo.

Funzionalità

Come molti linguaggi di programmazione, Perl, consente l'utilizzo di librerie esterne (o moduli) che sono file contenenti codice Perl riutilizzabile e che estendono le funzionalità di base del linguaggio.

Tipicamente i moduli Perl vengono installati in una directory di sistema dedicata che spesso indicata da una variabile d'ambiente nota come PERL5LIB. Nei sistemi operativi Unix-like i percorsi comuni sono /usr/lib/perl5, /usr/local/lib/perl5 e loro sottodirectory.

Perl viene fornito con un insieme di moduli di base, spesso chiamati core modules, che sono essenziali per la maggior parte delle applicazioni. Questi moduli forniscono funzionalità di base come la gestione delle stringhe, l'input/output, l'espressione regolare e molto altro.

Tra questi troviamo ExtUtils::MakeMaker [5] la cui funzione principale è quella di generare automaticamente un Makefile a partire da un semplice script chiamato Makefile.PL. Questo Makefile contiene tutte le istruzioni necessarie per compilare, testare e installare un modulo Perl, soprattutto quelli che richiedono codice C o C++. Altro modulo essenziale e parte dei core modules è List::Util [6] che fornisce un insieme di funzioni utili per manipolare le liste in Perl.

CPAN permette ai programmatori di condividere il proprio codice con la comunità, promuovendo la collaborazione e il riutilizzo del software. Opera su un modello decentralizzato. Ciascun autore mantiene e migliora i propri moduli mentre la struttura decentralizzata favorisce l'innovazione e permette la coesistenza di diverse soluzioni per lo stesso problema. Il forking, ovvero la creazione di nuovi moduli basati su quelli esistenti, è una pratica comune su CPAN che può portare a una sana competizione e a migliorare la qualità dei moduli offrendo una scelta più ampia. CPAN fornisce un sistema integrato per la segnalazione dei bug per ogni modulo caricato. Tuttavia, gli autori possono scegliere di utilizzare sistemi esterni come GitHub. I manutentori possono concedere ad altri utenti i permessi per contribuire o prendere in carico i loro moduli mentre gli amministratori di CPAN possono assegnare i moduli orfani a nuovi manutentori. CPAN conserva le versioni precedenti dei moduli, consentendo agli utenti di accedere a versioni precedenti se necessario. Un network secondario, chiamato BackPAN, garantisce ulteriormente la conservazione di queste versioni.[7]

La cronologia completa di CPAN e di tutti i suoi moduli è disponibile come progetto GitPAN [8] che consente di accedere alla cronologia completa di tutti i moduli e a quella dei loro fork. CPAN viene anche utilizzato per distribuire nuove versioni di Perl e progetti correlati quali Parrot e Raku.

Struttura

Ogni libreria, in CPAN, è definita distribuzione. Una distribuzione include Il codice del modulo, la relativa documentazione, eventuali script di installazione (solitamente chiamati Makefile.PL o Build.PL) e altri file (potrebbero esserci file di configurazione o altri elementi a seconda del modulo specifico). Le nuove distribuzioni vengono caricate sul Perl Authors Upload Server, o PAUSE.

Note

  1. ^ CPAN front page, su cpan.org. URL consultato il 27 gennaio 2016.
  2. ^ How are Perl and the CPAN modules licensed?, su cpan.org.
    «Most, though not all, modules on CPAN are licensed under the GNU General Public License (GPL) or the Artistic license...»
  3. ^ The Timeline of Perl and its Culture, su history.perl.org.
  4. ^ Grokking the CPAN (PDF), su cpan.org.
    «I propose that we cooperate to create a unified structure, much like the CTAN project which has managed to create a collection of canonical sites for TeX»
  5. ^ ExtUtils::MakeMaker - Create a module Makefile - Perldoc Browser, su perldoc.perl.org. URL consultato il 18 novembre 2020.
  6. ^ List::Util - A selection of general-utility list subroutines - Perldoc Browser, su perldoc.perl.org. URL consultato il 18 novembre 2020.
  7. ^ BackPAN, su backpan.cpantesters.org. URL consultato il 20 dicembre 2019.
  8. ^ What is Gitpan?, su GitHub, 2 dicembre 2015. URL consultato il 16 novembre 2016.

Voci correlate

Collegamenti esterni