Getopt::Std

Este módulo facilita la creación de una interfaz para tu programa en la línea de comando, definiendo las diferentes opciones disponibles por medio de una letra y manejando su tratamiento. Lo mostraré mejor con un ejemplo:

#!/usr/bin/perl -w
# program: example.pl
# author: Bruno Contreras Moreira

use strict;
use Getopt::Std;

my %opts;
getopts('hsi:l:', \%opts);

if(($opts{'h'})||(scalar(keys(%opts))==0)) 
{ 
	print "usage: progname.pl [options]\n";
	print "-h \t this message\n";
	print "-i \t input transcription file\n";
	print "-s \t skip preprocessing (optional)\n";
	print "-l \t oligo length (default 1, optional)\n\n";
	exit; 
}

if(!defined($opts{'i'})) 	{ die "# need an input file\n"; }
if(!defined($opts{'l'}) || ($opts{'l'} < 1) ) 	
{ 
	$opts{'l'} = 1; 
}
if(!defined($opts{'s'})) 	
{ 
	$opts{'s'} = 0; 
}

printf("# example.pl -i %s -s %s -l %d\n",$opts{'i'},$opts{'s'},$opts{'l'});

Si invocamos el programa
$ perl example.pl
nos muestra las opciones posibles.

Hay otra versión que admite nombres de los parámetros largos, Getopt::Long .

Bruno Contreras-Moreira
http://www.eead.csic.es/compbio