在 Perl 中创建拆分事务的示例 Finance::QIF

Example for creating split-transaction in Perl Finance::QIF

我需要将银行导出的交易 (CSV) 导入 GNUcash。 我几乎使用 Finance::QIF

完成了 perl 脚本

我解析 CSV 并像这样写出来:

my $record = {
header      => "Type:Bank",
date        => $outdatum,
memo        => $outtext,
transaction => $outbetrag,
};
$out->header( $record->{header} );
$out->write($record);
....

但我的问题是造成分裂。 http://finance-qif.sourceforge.net/ 说“如果交易包含拆分,这将被定义并由哈希引用数组组成。每个拆分可能具有以下值。” - 所以我试过这个:

my $record = {
header      => "Type:Bank",
date        => $outdatum,
memo        => $outtext,
transaction => $outbetrag,
@splits = (
  {
    category => "Gesundheit:Arzt:Kind1",
    memo => "L",
    amount => "-161,66"
  },
  {         
    category => "Gesundheit:Arzt:Kind2",
    memo => "F",
    amount => "-162,66"
  }
)
};

这会导致错误:

Unsupported field 'HASH(0x221c9e8)' found in record ignored in file '>_TESTqif.qif' line 22 at convert_bank_CSV.pl line 195.

不幸的是,我在任何地方都找不到创建拆分的示例,只是为了正常的交易。

有人可以帮助如何使用 Finance::QIF 来创建拆分交易吗?

我对 Finance::QIF 一无所知,但你的 @splits 代码毫无意义。

试试这个:

my $record = {
    header      => "Type:Bank",
    date        => $outdatum,
    memo        => $outtext,
    transaction => $outbetrag,
    splits      => [
      {
        category => "Gesundheit:Arzt:Kind1",
        memo => "L",
        amount => "-161,66",
      },
      {         
        category => "Gesundheit:Arzt:Kind2",
        memo => "F",
        amount => "-162,66",
      }
    ],    
};

有关 Perl 中的引用和数据结构的详细信息,请参阅 perldoc perlreftut