diff options
author | Daniel Friesel <derf@derf.homelinux.org> | 2009-07-02 11:38:49 +0200 |
---|---|---|
committer | Daniel Friesel <derf@derf.homelinux.org> | 2009-07-02 11:38:49 +0200 |
commit | 25901373d46b88a1b60374431b887cd07f527c65 (patch) | |
tree | cb171ed5e5960b924796c358bec506e299f92565 /lib/Simplestore.pm | |
parent | 69d329912a3534da3f3b41b8f5694fd209d4314e (diff) |
Simplestore.pm: Fixed overwriting for existing keys
Diffstat (limited to 'lib/Simplestore.pm')
-rw-r--r-- | lib/Simplestore.pm | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/lib/Simplestore.pm b/lib/Simplestore.pm index 4e878b4..222aab1 100644 --- a/lib/Simplestore.pm +++ b/lib/Simplestore.pm @@ -13,17 +13,18 @@ $VERSION = '1.0'; sub load { my $file = shift; - my ($store, $key, $value); + my ($store, $key, $value, @keys); $store = shift if @_; open(my $handle, '<', $file) or confess("Cannot read $file: $!"); while (<$handle>) { chomp; /^(\S+)\s+(.*)$/ or next; ($key, $value) = ($1, $2); - if (exists($store->{$key})) { + if (exists($store->{$key}) and grep {$_ eq $key} @keys) { $store->{$key} .= "\n$value"; } else { $store->{$key} = $value; + push(@keys, $key); } } close($handle); |