私は、MIME :: Base64のencode_base64関数を使用して作成したperlモジュールを使用しています。何らかの理由で、encode_base64が私のモジュールの名前空間にエクスポートされていません。モジュールにエクスポートされていないPerlサブ
私はおそらく何かが不足していますが、誰かがそれが何であるか説明できることを願っています。ここで
は私のモジュールです:
use strict;
use Exporter;
use MIME::Base64;
package b64_test;
BEGIN {
our $VERSION = 1.00;
our @ISA = qw(Exporter);
our @EXPORT = qw(enc);
}
sub enc {
my $msg = shift;
my $encoded = encode_base64($msg);
print $encoded . "\n";
}
1;
私はここに私のテストスクリプトでそのモジュールを使用しています:
#!/usr/bin/env perl
use lib '..';
use b64_test;
my $str = "Test";
enc($str);
を私はテストスクリプトを呼び出すと、私は確認するにUndefined subroutine &b64_test::encode_base64 called at b64_test.pm line 18.
を取得します私のマシンに何か間違いはありませんでした。私はMIME :: Base64を使った別のテストスクリプトを作っていますが、これはうまくいきます:
#!/usr/bin/env perl
use MIME::Base64;
my $encoded = encode_base64("TEST");
print $encoded . "\n";
これは、モジュールのサブモジュールが他のモジュールにどのようにエクスポートされるかとは関係がありますが、わかりません。誰かがこれについていくつかの光を当てることができますか?
'use MIME :: Base64;'を 'package b64_test;'の後ろに置くとどうなりますか? – Zaid