0

コードを実行すると、次のエラーが発生します。

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');
4

2 に答える 2

4

あなたの3番目(そして最後の?)の問題について:

「未定義のサブルーチン &main::md5_hex が 14 行目で呼び出されました」

Digest::MD5md5_hexデフォルトではエクスポート(またはその他のもの)しません。エクスポートする必要があることを明示的に伝える必要がありmd5_hexます。

use Digest::MD5 qw(md5_hex);

またはフルネームを使用しDigest::MD5::md5_hexます。

于 2012-06-04T00:30:35.310 に答える
4

Digest::MDd5 を使用するには、セミコロンで終了する必要があります。

于 2012-06-04T00:13:24.470 に答える