Re: [Comandob] perl Config::General y fichero por defecto

2011-10-07 Por tema Jose Luis Perez Diez
El Thursday 06 October 2011 14:48:27 Arnau Bria va escriure:
 
 el mail ha llegado hoy, verdad? porque lo mandé hace unos días...
  

Si por las cabezeras se quedo entrando y saliendo por 127.0.0.1 con algun 
retardo hasta ayer :(

 basic:
 
 /=options,--fsoptions=defaults;fstype,ext3;size,1 --grow
 swap=options,--fsoptions=defaults;fstype,swap;size,4096
 
 a un hash:
  'basic' = {
  
   '/' = {
   
'options' = '--fsoptions=defaults',
'fstype' = 'ext3',
'size' = '1 --grow'
  
  },
   
   'swap' = {
   
   'options' = '--fsoptions=defaults',
   'fstype' = 'swap',
   'size' = '4096'
 
 }
 
 },
 conoces algún otro módulo que lo haga? (me he creado mi propia función
 porque no encontré nada que lo hiciera).

Con esa sintaxts no me suena nada. 
General::Config puede generar hash de hashes (en el pod hay varios ejemplos) yo
para estos casos me encunetro mas comdo con YAML o JSON si se edita de higos a 
brebas.
--
___
Comandob mailing list
Comandob@badopi.org
http://lists.badopi.org/mailman/listinfo/comandob


Re: [Comandob] perl Config::General y fichero por defecto

2011-10-06 Por tema Jose Luis Perez Diez
El Wednesday 28 September 2011 14:59:25 Arnau Bria va escriure:
 Hola a todos,
 
...
 http://search.cpan.org/~tlinden/Config-General-2.50/General.pm
 
 Ahora estoy leyendo el fichero y directamente me genera un hash donde
 tengo todos los valores que defino en mi fichero custom.
 
 Para los defaults puedo utilizar -DefaultConfig y pasarle un hash con
 los valores por defecto, pero me preguntaba si podría pasar los valores
 por defecto directamente desde un fichero. Es decir:

  He encontrado una manera de hacerlo y es hacer un cat del fichero
 custom sobre el default y leerlo con  -MergeDuplicateOptions, así el
 valor que coge un avariable es el último que se de en el fichero
 pero lo veo cutre...

Por lo que he probado no puedes omitir el MergeDuplicateOptions 

 Alguien me echa una mano?

Yo lo que he conseguido que mas se parezca a lo que quieres es 
$ cat conf.cust 
Nombre perico de los palotes
Domicilio  rue 13 del pecebe
Barrio nuevo
$ cat conf.defaut 

Nombre Pepe
Domicilio  desconocido aun
Mote Tonton
$ perl -M'Config::General qw(ParseConfig)' -M'Data::Dumper::Simple' -e 'my 
%default= ParseConfig(conf.defaut); print Dumper(%default);my $conf = new 
Config::General(-ConfigFile = conf.cust,-DefaultConfig = 
{ParseConfig(conf.defaut)}, -MergeDuplicateOptions = 1);print 
Dumper({$conf-getall})'
%default = (
 'Domicilio' = ' desconocido aun',
 'Nombre' = 'Pepe',
 'Mote' = 'Tonton'
   );
${$conf-getall} = {
 'Domicilio' = ' rue 13 del pecebe',
 'Barrio' = 'nuevo',
 'Mote' = 'Tonton',
 'Nombre' = 'perico de los palotes'
   };
$#sin -MergeDuplicateOptions
$ perl -M'Config::General qw(ParseConfig)' -M'Data::Dumper::Simple' -e 'my 
%default= ParseConfig(conf.defaut); print Dumper(%default);my $conf = new 
Config::General(-ConfigFile = conf.cust,-DefaultConfig = 
{ParseConfig(conf.defaut)});print Dumper({$conf-getall})'
%default = (
 'Domicilio' = ' desconocido aun',
 'Nombre' = 'Pepe',
 'Mote' = 'Tonton'
   );
${$conf-getall} = {
 'Domicilio' = [
  ' desconocido aun',
  ' rue 13 del pecebe'
],
 'Barrio' = 'nuevo',
 'Mote' = 'Tonton',
 'Nombre' = [
   'Pepe',
   'perico de los palotes'
 ]
   };

--
___
Comandob mailing list
Comandob@badopi.org
http://lists.badopi.org/mailman/listinfo/comandob


Re: [Comandob] perl Config::General y fichero por defecto

2011-10-06 Por tema Arnau Bria
On Thu, 6 Oct 2011 13:16:57 +0200
Jose Luis Perez Diez wrote:

Hola!

 El Wednesday 28 September 2011 14:59:25 Arnau Bria va escriure:

el mail ha llegado hoy, verdad? porque lo mandé hace unos días...
 
 Por lo que he probado no puedes omitir el MergeDuplicateOptions 
 
  Alguien me echa una mano?
 
 Yo lo que he conseguido que mas se parezca a lo que quieres es 
 $ cat conf.cust 
 Nombre perico de los palotes
 Domicilio  rue 13 del pecebe
 Barrio nuevo
 $ cat conf.defaut 
 
 Nombre Pepe
 Domicilio  desconocido aun
 Mote Tonton
 $ perl -M'Config::General qw(ParseConfig)' -M'Data::Dumper::Simple'
 -e 'my %default= ParseConfig(conf.defaut); print
 Dumper(%default);my $conf = new Config::General(-ConfigFile =
 conf.cust,-DefaultConfig = {ParseConfig(conf.defaut)},
 -MergeDuplicateOptions = 1);print Dumper({$conf-getall})'

Si, así lo acabé haciendo (bueno, no tan bonico que la distro no tenía
parseconfig y no quería utilizar CPAN).

y aprovechando tu respuesta hacer lo mismo pero cargar un triple
hash  es decir, de un fichero tipo:

basic:

/=options,--fsoptions=defaults;fstype,ext3;size,1 --grow
swap=options,--fsoptions=defaults;fstype,swap;size,4096

a un hash:

 'basic' = {
  '/' = {
   'options' = '--fsoptions=defaults',
   'fstype' = 'ext3',
   'size' = '1 --grow'
 },
  'swap' = {
  'options' = '--fsoptions=defaults',
  'fstype' = 'swap',
  'size' = '4096'
}
},



conoces algún otro módulo que lo haga? (me he creado mi propia función
porque no encontré nada que lo hiciera).


muchas gracias por tu respuesta!
Arnau
--
___
Comandob mailing list
Comandob@badopi.org
http://lists.badopi.org/mailman/listinfo/comandob