[14166] error @0.102147> [hit #336]request to GET / crashed: YAML Error: Invalid element in map
Code: YAML_LOAD_ERR_BAD_MAP_ELEMENT
Line: 315
Document: 1
at /opt/perl5.14/lib/site_perl/5.14.2/YAML/Loader.pm line 352. in /opt/perl5.14/lib/site_perl/5.14.2/Dancer/Handler.pm l. 98
####
...
question:
- "You can select more than one answer.\n"
e answer.\n"
####
sub flush {
my $self = shift;
my $session_file = yaml_file( $self->id );
open my $fh, '>', $session_file or die "Can't open '$session_file': $!\n";
flock $fh, LOCK_EX or die "Can't lock file '$session_file': $!\n";
set_file_mode($fh);
print {$fh} YAML::Dump($self);
close $fh or die "Can't close '$session_file': $!\n";
return $self;
}
####
#!/usr/bin/perl
use warnings;
use strict;
use Fcntl qw(:flock :DEFAULT);
my $pid = fork;
die "Cannot fork.\n" unless defined $pid;
if ($pid) {
open my $parent, '>', 'tmp' or die "open parent: $!";
sleep 1;
flock $parent, LOCK_EX or die "lock parent: $!";
print {$parent} "Parent\n";
close $parent or die "close parent: $!";
} else {
open my $child, '>', 'tmp' or die "open child: $!";
flock $child, LOCK_EX or die "lock child: $!";
# Longer than parent:
print {$child} "Child here...\n";
close $child or die "close child: $!";
}
####
open my $fh, '+<', $file or die "Can't open '$file': $!\n";
flock $fh, LOCK_EX or die "Can't lock file '$file': $!\n";
truncate $fh, 0;
print {$fh} $content;
close $fh or die "Can't close '$file': $!\n";
####
sub atomic_write {
my ($path, $file, $data) = @_;
my ($fh, $filename) = tempfile("tmpXXXXXXXXX", DIR => $path);
set_file_mode($fh);
print $fh $data;
close $fh or die "Can't close '$file': $!\n";
rename($filename, $file) or die "Can't move '$filename' to '$file'";
}