我正在对以前从未挂起的 Perl 脚本进行故障排除。我不知道 Perl。我终于将问题追溯到文件路径字符串。此代码有效:
$eng_morph = "~/datafile.en.db";
tie %eng_morph, "DB_File", $eng_morph, O_CREAT|O_RDWR, 0664|| die "Cannot open dbmfile $eng_morph";
当我将文件名更改为包含下划线时,第二行将永远挂起:
$eng_morph = "~/datafile.en_us.db";
tie %eng_morph, "DB_File", $eng_morph, O_CREAT|O_RDWR, 0664|| die "Cannot open dbmfile $eng_morph";
语法有问题吗?有没有办法允许下划线?
我正在使用 Ubuntu 14.04。这是 uname 输出:
Linux asus-notebook 3.13.0-43-generic #72-Ubuntu SMP Mon Dec 8 19:35:06 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
此外,我还在发行版中使用默认的 Perl。它的版本输出是:
这是为 x86_64-linux-gnu-thread-multi 构建的 perl 5,版本 18,subversion 2 (v5.18.2)(有 41 个已注册补丁,有关更多详细信息,请参见 perl -V)