[bcn-pm] Getopt::Long i funcions per una mateixa opció
Arnau Bria
listsarnau a gmail.com
dll feb 6 07:58:17 PST 2012
On Mon, 6 Feb 2012 16:44:25 +0100
Alex Muntada wrote:
[...]
> Aquí estàs cridant directament les funcions i el que
> t'interessa és la referència a cadascuna d'elles:
>
> my %opy = (
> list => {
> postinstall => \&list_postinstall,
> distros => \&list_distros,
> },
> );
mira que aho havia provat, però sense escapar el & .
> > i ho acabo cridant com:
> > GetOptions ('list=s' => sub {$opt{$_[0]}->($_[1])->($_[2])});
>
> Fixa't que no estàs accedint al 2 nivells del hash correctament,
> en tot cas seria això altre, indicant explícitament que list espera
> un comportament de hash:
>
> GetOptions( 'list=s%' => sub { $opt{ $_[0] }{ $_[1] }->( $_[2] ) } );
>
> Però tingues clar que això només funciona per a les opcions
> que tenen aspecte de hash, e.g.:
>
> $ foobar.pl --list distros=debian
>
> Amb això accedeixes al hash $opt{'list'}{'distros'}, obtens la
> referència a la funció i la crides amb el paràmetre 'debian'.
> L'exemple sencer: https://gist.github.com/1752738
Val, ara entenc algun que altre exemple que he vist :-)
que fàcil smebla així explicat i lo que m'ha costat entendre-ho jo
solet....
en fi, recurrirem a les opcions simples, tipus --postinstalls,
--distros, etc...
> Salut!
Moltíssimes gràcies per la teva ajuda!
Arnau
Més informació sobre la llista de correu Barcelona-pm