summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Friesel <derf@derf.homelinux.org>2009-07-02 11:38:49 +0200
committerDaniel Friesel <derf@derf.homelinux.org>2009-07-02 11:38:49 +0200
commit25901373d46b88a1b60374431b887cd07f527c65 (patch)
treecb171ed5e5960b924796c358bec506e299f92565
parent69d329912a3534da3f3b41b8f5694fd209d4314e (diff)
Simplestore.pm: Fixed overwriting for existing keys
-rw-r--r--lib/Simplestore.pm5
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);