Biber 无法对未定义的值调用方法“get_field”

Biber 无法对未定义的值调用方法“get_field”

这是一个错误吗?行为是否已经改变(即,它是一个新的“功能”)?或者最终用户只是一个白痴?

当我尝试在最近(即在 TeX Live 的最新更新之前)编译良好的代码上运行 Biber 时,我收到以下错误:

Can't call method "get_field" on an undefined value at /tmp/par-636672656573/cache-c198dfb38941e814f5331b149bc84facd9e9c2e6/inc/lib/Biber.pm line 2247.

移动网络:

\begin{filecontents}{\jobname.bib}
@bookinbook{entry1,
  ids           =   {entry3},
  title         =   {Original Title},
  crossref      =   {entry2},
  origdate      =   1098}
@bookinbook{entry4,
  title         =   {Another Original Title},
  crossref      =   {entry2},
  origdate      =   1076}
@inbook{entry2,
  author        =   {Author, A. N.},
  title         =   {Collected Works},
  publisher     =   {Old Books 'n Stuff},
  location      =   cam,
  date          =   {2003}}
\end{filecontents}
\begin{filecontents}{places.bib}
@string{cam     =   {Cambridge}}
\end{filecontents}
\documentclass{article}
\usepackage[backend=biber]{biblatex}
\bibliography{places,\jobname}
\begin{document}
\textcite{entry1}
\begin{refsection}
  \textcite{entry3,entry4,entry2}
  \printbibliography
\end{refsection}
\end{document}

请注意,测试表明,如果

  • 将 的引用entry3改为 使用entry1
  • refsection未使用;
  • 之外没有引用任何内容refsection
  • @string{...}包含在内\jobname.bib
  • entry4未在内引用refsection

但是,我在想出 MWEB 时遇到了很多困难,所以如果能有头脑清醒的人再检查一下就好了。我可能真的太困惑了。

Biber 抱怨的文件第 2247 行.pm是:

    my $bee = $be->get_field('entrytype');

我正在使用 Biber 2.2 版本。

相关内容