当我运行GNU Guile的Scheme脚本时,我遇到了一个非绑定变量的奇怪错误。对我来说,不清楚错误发生的位置,这就是为什么我没有发布一个简短的可重现代码。我可能首先需要知道我在代码中搜索的内容。
错误内容如下:
#!/usr/bin/perl
use strict;
use warnings;
my @fields;
my ($column1, $column2, $column3);
my $text = "text.txt";
open(FILE, $text) or die "Could not read from $text, program halting.";
my @files;
while(<FILE>)
{
chomp;
/^</ and next;
/^\s*$/ and next;
/line*/ and next;
($column1, $column2, $column3) = split('\s', $_);
#PRINT ONE
#print $column2, "\t";
}
#PRINT TWO
print $column2, "\t";
close FILE;
我很清楚,代码中必须有一些字符,它们通过guile与变量相关联。但它不是一个可打印的&#34;字符。所以我假设一个空白。我对这个假设是对的吗?我应该搜索什么?
之前我曾经遇到过这个错误,但当我将整个代码逐个字符重新插入新脚本时,未绑定的变量就消失了。这就是让我想到空白的原因。
到目前为止,我已经搜索了未绑定的变量&#39; GNU Guile和其他Scheme实现中的错误。但我发现的只是&#34;可打印&#34;以前没有定义的变量。使用其他Backtrace:
In ice-9/boot-9.scm:
157: 6 [catch #t #<catch-closure 266cce0> ...]
In unknown file:
?: 5 [apply-smob/1 #<catch-closure 266cce0>]
In ice-9/eval.scm:
432: 4 [eval # #]
432: 3 [eval # #]
In unknown file:
?: 2 [primitive-load "/home/NAME/MEEP/transmission-in-and-out/transmission-large_2D_wvg.ctl"]
In ice-9/eval.scm:
393: 1 [eval #<memoized #{�}#> ()]
In unknown file:
?: 0 [memoize-variable-access! #<memoized #{�}#> #<directory # 265dc60>]
ERROR: In procedure memoize-variable-access!:
ERROR: Unbound variable: #{�}#
的搜索没有返回真正不同的结果。
我希望一旦我知道应该寻找什么,我就能提供更多信息。