包括在当前文件中生成的perl文件

包括在当前文件中生成的perl文件,perl,include,Perl,Include,我正在编写一个perl脚本,它成功地生成包含哈希的输出文件。我想在我的文件中使用这些散列。是否可以包含在该文件中生成的文件,或者我必须创建另一个文件 从技术上讲,启动一个使用这些散列的新的.pl文件可能更干净,但如果可能的话,我希望将所有内容都保存在一个脚本中。甚至有可能这样做吗 编辑:我只是不确定是否可以将它“圈”回来,这样我就可以在我的文件中使用这些散列,因为散列是每周生成的。我不希望我的文件错误地接触到上周的散列,而不是新生成的散列。我还没有以对每周生成的哈希进行分类的方式编写脚本 总之,

我正在编写一个perl脚本,它成功地生成包含哈希的输出文件。我想在我的文件中使用这些散列。是否可以包含在该文件中生成的文件,或者我必须创建另一个文件

从技术上讲,启动一个使用这些散列的新的.pl文件可能更干净,但如果可能的话,我希望将所有内容都保存在一个脚本中。甚至有可能这样做吗

编辑:我只是不确定是否可以将它“圈”回来,这样我就可以在我的文件中使用这些散列,因为散列是每周生成的。我不希望我的文件错误地接触到上周的散列,而不是新生成的散列。我还没有以对每周生成的哈希进行分类的方式编写脚本


总之,以下是我的文件的作用。它从另一个文件中提取一个表。删除不需要的列和行。一旦只剩下所需的两列,它就会将它们放入一个散列中。一列是键,另一列是值。出于这个原因,我发现Data::Dumper是哈希的最佳选择。我是Perl的中级,这是我为实习准备的脚本。

下面是一个示例,您可以将哈希作为JSON保存到文件中,然后将JSON读回Perl哈希。此示例使用:


JSON的一些替代方案是和。

谢谢!我在尝试使用JSON时出错。我获取散列数据的方法是将数据推入数组,然后使用decode\u json(\%that\u变量);实际上,我并没有手动键入正在进行的数据。为我用来生成哈希的数组生成的数据来自一些自动脚本。我得到的错误是“格式错误的JSON字符串,无论是数组、对象、数字、字符串还是原子,字符偏移量为0(在“HASH(0x884248)”之前)”。我觉得JSON文件不正确。你能检查一下它看起来是否合适吗?如果JSON文件格式不正确,则可能是在编写文件之前如何将数据传递到
encode_JSON
的问题我刚刚修复了一些错误,现在可以正常工作。我想这就引出了我的问题:我正在运行在foreach循环中调用sub的代码的主要部分。我需要为4个文件生成一个哈希。我仍然不明白如何在我的脚本中作为变量访问这些散列。如果不看代码,很难知道该推荐什么。也许你可以把密码发给我?不幸的是,由于我公司的隐私政策,我不允许这么做,但我会尝试做一些额外的研究。感谢您帮助我使用JSON获得输出!评论不用于扩展讨论;这段对话已经结束。
use strict;
use warnings;
use Data::Dumper;
use JSON::XS;

{
    my %h = (a => 1, b => 2);
    my $str = encode_json( \%h );
    my $fn = 'test.json';
    save_json( $fn, \%h );
    my $h2 = read_json( $fn );
    print Dumper( $h2 );
}


sub read_json {
    my ( $fn ) = @_;

    open ( my $fh, '<', $fn ) or die "Could not open file '$fn': $!";
    my $str = do { local $/; <$fh> };
    close $fh;
    my $h = decode_json $str;
    return $h;
}

sub save_json {
    my ( $fn, $hash ) = @_;

    my $str = encode_json( $hash );
    open ( my $fh, '>', $fn ) or die "Could not open file '$fn': $!";
    print $fh $str;
    close $fh;
}
$VAR1 = {
          'a' => 1,
          'b' => 2
        };