電子書籍の厳選無料作品が豊富!

Windowsで作ったMP3ファイルのタグ情報をちゃんと表示するためにPerlスクリプトを作っているのですが、
Jcodeでeucに変換する所でエラーになってしまいます。
どこをどう直せばちゃんと表示できるようになるのかわかる方がいらっしゃいましたら教えてください。

== mp3info.pl ======
#!/usr/local/bin/perl -w
use MP3::Info;
use Data::Dumper;
usr Jcode;

my $file = $ARGV[0];

my $tag = get_mp3tag($file);
my $info = get_mp3info$file);

my $jtag = jcode($tag)->euc;

print Dumper($jtag, $info);

============

$./mp3info.pl aaa.mp3

$Not a SCALAR reference at /usr/lib/perl5/site_perl/5.6.1/i686-linux-multi/Jcode.pm line 579.

A 回答 (3件)

my $tag = get_mp3tag($file);により得られた結果である$tagは、そのままEUCに変換出来ません。


従って、以下のようにしてください。
-----------------------
my $file = $ARGV[0];
my $tag = get_mp3tag($file);
my $info = get_mp3info($file);
my $data = Dumper($tag, $info);
my $edata = jcode($data)->euc;
----------------------------------
つまり、Dumperの結果をEUCコードに変換することになります。これであなたの望んだ結果が得られるはずです。
    • good
    • 0
この回答へのお礼

ご返答ありがとうございます。
Dumpした結果を変換することで望んだとおりの結果を得ることができました。
本当にありがとうございました。

お礼日時:2003/10/22 10:31

NO2です。


print $edata ;
を最後に行ってください。
    • good
    • 0

use MP3を使ったこと無いのであれですが、jcode.pmって値にreferを渡すんじゃないですか?


(エラーもそんなこと言ってるし)

- my $jtag = jcode($tag)->euc;
+ my $jtag = jcode(\$tag)->euc;
    • good
    • 0
この回答へのお礼

ご返答ありがとうございます。
大変助かりました。
また何かありましたらご助言よろしくお願いします。

お礼日時:2003/10/22 10:34

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!