gpt4 book ai didi

perl - 无法将合并数据写入 yml 文件

转载 作者:行者123 更新时间:2023-12-04 12:14:55 27 4
gpt4 key购买 nike

我正在尝试将两个 yml 文件与以下 perl 合并代码。当我打印 $res通过 Dumper模块,我可以看到数据。
我运行了我的脚本,但是 final.yml有引用数据,而不是原始数据:-

srcARRAY(0x1013320)local_pointerARRAY(0x10228f8)    
代码:-
use warnings;
use strict;
use feature 'say';
use Data::Dump;
use Data::Dumper;
use Storable qw(dclone);
use YAML qw(LoadFile);
use File::Slurp qw(write_file);
use Hash::Merge qw(merge);
Hash::Merge::set_behavior('RETAINMENT_PRECEDENT');

die "Usage: $0 file1 file2\n" if @ARGV != 2;
my ($fname1, $fname2) = @ARGV;

my $yml1 = LoadFile($fname1);
my $yml2 = LoadFile($fname2);


my $res = merge($yml1, $yml2);
#print Dumper $res;
write_file("final.yml", { binmode => ':raw' }, %{$res});
我们是否需要在 perl 中设置任何自定义设置 Hash::Merge模块?

最佳答案

要将 YAML 数据写入文件,请使用 YAML Dump功能:

use warnings;
use strict;
use YAML qw(LoadFile Dump);
use File::Slurp qw(write_file);
use Hash::Merge qw(merge);
Hash::Merge::set_behavior('RETAINMENT_PRECEDENT');

die "Usage: $0 file1 file2\n" if @ARGV != 2;
my ($fname1, $fname2) = @ARGV;

my $yml1 = LoadFile($fname1);
my $yml2 = LoadFile($fname2);

my $res = merge($yml1, $yml2);
write_file("final.yml", Dump($res));
或者,您也可以使用 YAML::DumpFile而不是 File::Slurp::write_file :
DumpFile("final.yml", $res);

关于perl - 无法将合并数据写入 yml 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69255136/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com