暫定的な場当たり対処なので、とりあえず記事の形で・・・。
提起の通り、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
}"
Compilation failed in require at lib/Satsuki/AutoLoader.pm line 42.
といったエラーが出るようになりました。FreeBSD 13.0R + Perl 5.32 の環境までは発生しない。
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 ;
}
}
とすると、回避出来ました。これが正しいのかどうかは判りません。