From: Frank Lichtenheld Date: Mon, 06 Apr 2009 09:29:42 GMT Subject: Re: [PATCH] perl: add new module Git::Config for cached 'git config' access Message-ID: <20090406092942.GW17706@mail-vs.djpig.de> In-Reply-To: <1238975176-14354-1-git-send-email-sam.vilain@catalyst.net.nz> On Mon, Apr 06, 2009 at 11:46:15AM +1200, Sam Vilain wrote: > + my ($fh, $c) = $git->command_output_pipe( > + 'config', ( $which ? ("--$which") : () ), > + '--list', > + ); > + my $read_state = {}; > + > + while (<$fh>) { > + my ($item, $value) = m{(.*?)=(.*)}; > + my $sl = \( $read_state->{$item} ); > + if (!defined $$sl) { > + $$sl = $value; > + } > + elsif (!ref $$sl) { > + $$sl = [ $$sl, $value ]; > + } > + else { > + push @{ $$sl }, $value; > + } > + } Any reason why you don't use --null here? The output of --list without --null is not reliably parsable, since people can put newlines in values. Gruesse, -- Frank Lichtenheld www: http://www.djpig.de/