我正在尝试创建一个字符串的 SHA-256 哈希 Mason
按照堆栈溢出问题的答案进行操作SHA256 在 perl 中消化并使用 Digest::SHA
模块
以下是包含该代码的文件abc.mi
的内容:
use Digest::SHA qw(sha256_hex);
<%init>
my $message = 'random content';
my $encryptedMsg = sha256_hex($message);
</%init>
但它抛出以下错误:
Undefined subroutine &Safe::Root0::HTML::Mason::Commands::sha256_hex called
知道为什么即使我在文件本身的开头定义了它,它也sha256_hex
视为未定义吗?
这与这是带有扩展.mi
的梅森代码有关吗?
====
====== 编辑 ==========这是在浏览了针对此问题发布的答案后,我的查询的解决方案。
<%init>
my $message = 'random content';
my $encryptedMsg = Digest::SHA::sha256_hex($message);
</%init>
在 Mason 中,你的 Perl 代码需要在你的标签中。标记之外的任何内容都只是要包含在输出中的内容。所以你想要这样的东西:
<%init>
use Digest::SHA qw(sha256_hex);
my $message = 'random content';
my $encryptedMsg = sha256_hex($message);
</%init>