2022/06/11(土)FreeBSD 13.1R + Perl 5.36.0 の環境で adiaryの更新時エラー
2022/06/11 6:33
提起の通り、FreeBSD 13.1R 上で Perl 5.36.0 の環境で、adiary 3.40c を稼働させて、
おもむろに記事作成や更新を行うと、
[AutoLoader] Can't modify undef operator in scalar assignment at lib/SatsukiApp/adiary_4.pm line 925, near "undefといったエラーが出るようになりました。FreeBSD 13.0R + Perl 5.32 の環境までは発生しない。
}"
Compilation failed in require at lib/Satsuki/AutoLoader.pm line 42.
OSもPerlも同時に更新したため、
Perl のバージョンアップで挙動が変わったのか、OSで何かあるのかが判らない状態です。
但し、更新そのものは出来ている模様。
これは、lib/SatsukiApp/adiary_4.pm の 913行目~
sub void_plugin_images { my $self = shift; my $h = shift; my $form = shift; foreach(keys(%$form)) { if ($_ !~ /^(\w+)_void$/) { next; } if (! $form->{$_}) { next; } my $n = $1; $h->{$n} = undef $h->{"${n}_w"} = undef $h->{"${n}_h"} = undef } }と、なっているところを
sub void_plugin_images { my $self = shift; my $h = shift; my $form = shift; foreach(keys(%$form)) { if ($_ !~ /^(\w+)_void$/) { next; } if (! $form->{$_}) { next; } my $n = $1; $h->{$n} = undef ; $h->{"${n}_w"} = undef ; $h->{"${n}_h"} = undef ; } }とすると、回避出来ました。これが正しいのかどうかは判りません。