mhonarc -outdir /Users/peter/Mails_HTML /Users/peter/Mails
我遇到了以下错误:
Can't use 'defined(%hash)' (Maybe you should just omit the defined()?) at /opt/local/lib/perl5/vendor_perl/5.28/darwin-thread-multi-2level/mhamain.pl line 1565.
Compilation failed in require at /opt/local/bin/mhonarc line 39.
我不确定我是否拥有正确的Perl版本。我已经通过macports
安装了perl5.26和perl5.28以及以下3个macports包:
p5-mhonarc @2.6.19 (perl)
MHonArc - mail and news munging
p5.26-mhonarc @2.6.19 (perl)
MHonArc - mail and news munging
p5.28-mhonarc @2.6.19 (perl)
MHonArc - mail and news munging
在执行了sudo port searc mhonarc
之后:
我认为 High Sierra 自带的 Perl 和使用macports
安装的 Perl 包之间存在冲突,但我不确定。
编辑1
如果我执行which perl
,我得到:/opt/local/bin/perl
,因此我推断我正在使用从macports
安装的版本。
这里是mhonarc
安装的版本和可能使用的版本:
$ /opt/local/bin/perl --version
This is perl 5, version 26, subversion 3 (v5.26.3) built for darwin- thread-multi-2level
Copyright 1987-2018, Larry Wall
并且
$ /usr/bin/perl --version
This is perl 5, version 18, subversion 2 (v5.18.2) built for darwin-thread-multi-2level
(with 2 registered patches, see perl -V for more detail)
Copyright 1987-2013, Larry Wall
编辑2
我按照@choroba
的建议进行了更改:我用%variable_name替换了所有的 all defined(%variable_name)
所以命令mhonarc -outdir /Users/peter/Mails_HTML /Users/peter/Mails
不再产生错误,但问题现在是它没有在目录/Users/peter/Mails_HTML
下生成任何邮件的HTML格式。
我得到了以下输出:
This is MHonArc v2.6.19, Perl 5.028002 darwin
Converting messages to /Users/peter/Mails_HTML/
Reading /Users/peter/Mails
Writing mail
Writing /Users/peter/Mails_HTML//maillist.html ...
Writing /Users/peter/Mails_HTML//threads.html ...
Writing database ...
0 total messages
这种行为的起源是什么?
编辑3
问题最终通过修改命令行来解决:
mhonarc -outdir /Users/peter/Mails_HTML /Users/peter/Mails/*
这将在/Users/peter/Mails_HTML
目录中生成所有HTML文件。只有电子邮件日期缺失,我将研究添加此信息。
defined(%variable_name)
替换为%variable_name
。 - chorobadefined(%hash)
自 5.22 版本以后是致命的错误(https://www.perlmonks.org/?node_id=1225431),所以 5.18 可能会起作用。不幸的是我没有 Mac,但您可以尝试export PATH=/usr/bin:$PATH
然后看看发生了什么。如果您这样做,请尝试取消设置任何以PERL
开头的环境变量。 - cxw