变量没有被替换
即使在明确定义2变量之后,也不会被替换
sub updatekey{
my $key_url = File::Spec->catfile($dir. "/keys/cert.key.$label.$type")
$eol = '';
open(FILE, $key_url) or die "$!";
my $key_file;
while (read(FILE, $buf, 60*57)) {
$keyfile = $key_file . encode_base64($buf,$eol);
}
}
打开文件失败,因为没有替换$ type。如果我将行修改如下
my $key_url = File::Spec->catfile($dir. "/keys/cert.key.$label.pem")
一切正常。
答案 0 :(得分:1)
这是非常基本的调试。
将此作为子例程的第一行添加到您的代码中:
if (defined $type) {
print "\$type is undefined\n";
} else {
print "\$type is '$type'\n";
}
这样,您将在尝试使用$type
时确切地看到它的值。我希望您会看到“ $ type is undefined”或“ $ type is”。
然后,您的问题就变成了查找应该设置$type
的位置,并弄清为什么没有发生这种情况。
另外两条建议:
use strict
和use warnings
总是一个好主意,因为它们会发现大量基本的编程错误。