key_1 => [ 2, 5, 6, 8, 11 ]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
#!/usr/bin/env perl use warnings; use strict; use JSON; my $history = 'history.json'; open my $fh, '<', $history or die $!; my $utf8_encoded_json_text = readline $fh; my $hashref = decode_json $utf8_encoded_json_text; close $fh; $hashref->{key_1} = [ 2, 3, 6, 11 ]; open $fh, '>', $history or die $!; $utf8_encoded_json_text = encode_json $hashref; print $fh $utf8_encoded_json_text; close $fh;
2012-04-29T16:54:57 KuerbisDann liege ich mit meinem Beispiel nicht ganz daneben.
An das Datei locken habe ich nicht gedacht - das würde es wieder ein bisschen komplizierter machen.
use Lock;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
# Ermöglicht ein globales Lock auf Perl-Prozesse package Lock; use strict; use warnings; use Fcntl qw(:flock); use IO::File; my $self = { file => '/home/lockfile', FH => undef, }; sub import{ my $class = shift; $self->{FH} = IO::File->new or die "Can't get a FileHandle"; $self->{FH}->open($self->{file}, O_CREAT|O_RDWR) or die "IO-Error: $!"; flock($self->{FH}, LOCK_EX) or warn 'Your system does not support flock()'; } 1; ########################################################################