哈希生成脚本上的Perl语法错误
运行代码时,我遇到以下错误:哈希生成脚本上的Perl语法错误,perl,encryption,syntax-error,Perl,Encryption,Syntax Error,运行代码时,我遇到以下错误: syntax error line 5, near "use Digest::MD5 sub makeKey " syntax error at line 8, near "}" syntax error at line 15, near ") }" Execution aborted due to compilation errors. 我的剧本: use lib '/home/me/Desktop/pm/MD5.pm'; use Digest::MD5
syntax error line 5, near "use Digest::MD5
sub makeKey
"
syntax error at line 8, near "}"
syntax error at line 15, near ")
}"
Execution aborted due to compilation errors.
我的剧本:
use lib '/home/me/Desktop/pm/MD5.pm';
use Digest::MD5
sub makeKey
{
my ($strPassword, $strRndk);
$strKey = uc(md5Hash($strPassword)) + $strRndk + "Y(02.>'H}t\":E1" + md5Hash($strKey);
return $strKey;
}
sub md5Hash
{
my ($strPassword);
$strMd5 = md5_hex($strPassword);
return substr($strMd5, 16, 16) + substr($strMd5, 0, 16);
}
makeKey('test', '1A2B3C');
使用摘要::MDd5需要以分号结尾。关于第三个(也是最后一个?)问题: “第14行调用了未定义的子例程&main::md5_hex” 默认情况下,不导出
md5\u hex
(或任何其他内容),您必须明确告诉它应该导出md5\u hex
:
use Digest::MD5 qw(md5_hex);
或者使用完整的摘要::MD5::MD5_hex
名称。我这样做了,但现在我得到了“使用库的参数必须是目录,而不是第1行的文件”,所以我这样做了,现在我得到了“第14行调用的未定义的子程序&main::MD5_hex”。