http://www.perlmonks.org?node_id=516442


in reply to Config::Std multi-part problem

If you want to convert a single-valued entry into a multi-valued entry, you need to convert the scalar to an array . Like so:
use Config::Std; read_config 'test.cfg' => my %config; print $config{"MYSECTION"}{"element"} . "\n"; $config{"MYSECTION"}{"element"} = [ $config{"MYSECTION"}{"element"}, "test2", ]; write_config %config;
Damian

Replies are listed 'Best First'.
Re^2: Config::Std multi-part problem
by carcassonne (Pilgrim) on Dec 14, 2005 at 13:31 UTC
    Thanks, this works fine.

    I now also use Contextual::Return to see if the value is a scalar in the first place:

    print "This is a scalar\n" if (SCALAR { $config{"MYSECTION"}{"element"} });

    If I had the time, I could look into Contextual::Return to see what code is SCALAR, and extract only that, but I see no problem so far in including the whole module.

    I've noticed a blank entry in %config. Please see the new thread I created for that subject.