モブログ用URLをお知らせする手段の一つとして、MovableType/Plug-inの「MTQRcode」を使用させて頂きQRcodeを自動生成させています。その際、当サイトでは、「mt-rebuild.pl」でWinサーバー側のタスク実行で定期的にサイトを再構築させていますが、「Use of uninitialized value in concatenation (.) or string at ・・・」と表示され、サーバー側タスク実行時に叱られてしまいます。これは、"•"でつなげている変数が文字列として初期化されていないことが原因なので変数に放り込む前に、下記の様にしてやることで回避可能です。 QRcode.plをオープンし53行目あたりの「$filename = $arg->{filename} . $entry ? '-' . $entry->id : '' || $cfg->{QRcode_filename_base};」のところを下記の様に修正コーディングします。
if (exists $arg->{filename} && defined $arg->{filename}){ $filename = $arg->{filename} . $entry ? '-' . $entry->id : '' || $cfg->{QRcode_filename_base}; } else { $filename = $entry ? '-' . $entry->id : '' || $cfg->{QRcode_filename_base}; }
以上です。当方ではOKの結果ですが、同じ症状の場合は、ご自分の責任で書き換えてみてください。それと、もう一つ、「MTQRcode」を実行させる為には、Perlモジュールの"GD::Barcode::QRcode "があらかじめ組み込まれていることが前提条件ですが、当サーバーでは、生成されたQRコードのイメージをバイナリモードではきださないと上手く表示されませんでした。開いたQRcode.plの79行目あたりに下記の通り赤字のコードを加えてバイナリモードでイメージをはきださせます。
open my $fh, ">$imagefile" or return $ctx->error('cannot write file: ' . $imagefile);
binmode $fh;
print $fh $image;
close $fh;
これも、同じ症状の場合は、ご自分の責任で書き換えトライしてみてください。