No, no escriba un script de shell. Perl ya tiene una forma perfectamente buena de hacer esto. La forma correcta de hacerlo es crear una distribución preparada para CPAN utilizando la cadena de herramientas normal. Algo de esto se explica en perlnewmod, perlmodstyle y perlmodinstall.
Para un ejemplo de trabajo mínima, crear una estructura de directorios así:
.
├── Build.PL
├── README
└── script
└── abuscript.pl
En el archivo Build.PL
, poner:
use 5.000;
use Module::Build qw();
Module::Build->new(
module_name => 'abuscript',
dist_version => '1.000',
dist_author => 'abubacker <[email protected]>',
dist_abstract => 'describe what the script does in one sentence',
configure_requires => {
'perl' => '5.000',
},
requires => {
'JSON::Any' => 0,
},
)->create_build_script;
cambiar los detalles de la habitación sus propósitos.
En el archivo README
, poner algunas instrucciones de instalación, por ejemplo:
To install this module, run the following commands:
perl Build.PL
./Build install
Una vez que haya terminado con todo eso, se ejecuta:
perl Build.PL
./Build manifest
./Build dist
Esto resultará en un archivo .tar.gz
que distribuirá Dígales a sus usuarios que lo instalen como cualquier otro módulo de CPAN, o si no saben lo que eso significa, deben leer el archivo README.
Si tiene tiempo, le recomiendo que convierta su secuencia de comandos a un módulo. El programa pl2pm (viene con Perl) y el módulo CPAN Module-Starter-PBP le ayudan.
Si la licencia lo permite, es posible cargar su código en CPAN para hacerlo aún más conveniente para sus usuarios. Pida ayuda en cualquiera de los siguientes lugares primero: lista de correo [email protected], foro web PerlMonks, canal IRC#toolchain en MagNET (irc: //irc.perl.org/toolchain)
Prefiero 'perl -MJSON :: Cualquiera -e1 2>/dev/null' - ¿Hay algún punto en la impresión de la versión y enviarla a un cubo de bits – justintime
@justintime: Como he dicho, si desea comprobar el versión de JSON :: Any, capture the output - me ahorró tener que explicar cómo obtener la versión como un ejercicio separado. –