У меня есть хеш %h
, который я хотел бы сохранить как YAML.
#!/usr/bin/perl
use warnings;
use strict;
my %h = ();
# -----
use YAML::Syck;
my $y = YAML::Syck::LoadFile('have_seen.yaml');
$y->%h ???
my $yaml = YAML::Syck::Dump($y);
$yaml::Syck::ImplicitUnicode = 1;
open F, ">have_seen.yaml" or die $!;
print F $yaml . "---\n";
close F;
Но это похоже на проблему с курицей и яйцом.
Как мне написать файл yaml в первый раз, чтобы его можно было прочитать?
Обновление : На основании принятого ответа было решение
#!/usr/bin/perl
use warnings;
use strict;
use YAML::Syck;
use Data::Dumper;
my $first_time = 1;
if ($first_time) {
my %h = ("1" => 2);
open F, '>', 'seen.yaml';
print F YAML::Syck::Dump(\%h);
close F;
} else {
my $h = YAML::Syck::LoadFile('seen.yaml');
$h->{"3"} = 4;
print Dumper $h;
my $yaml = YAML::Syck::Dump($h);
$yaml::Syck::ImplicitUnicode = 1;
open F, ">seen.yaml" or die $!;
print F $yaml . "---\n";
close F;
}