I used to have this code:

sub read_sites {

    open my $fh'<encoding(UTF-8)', mymaven->{root} . '/sites.yml'

        or return {};

    my $yaml = do { local $/ = undef; <$fh> };

    from_yaml $yaml;

}

where sites.yml is this file: https://github.com/szabgab/perlmaven.com/blob/main/sites.yml

That worked well. Now it returns undef and does not evan complain about not being able to convert my yaml string to perl data structure.

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

I see that in D1 from_yaml was this code:

YAML::Load($content);

In D2 it is now this code:

YAML::Load(decode('UTF-8', $content));


So I wonder, was I doing it all wrong earlier, but it worked because of the (mis)feature of Dancer? Should I refrain from using from_yaml at all for data I read in myself?

What was the recommended approach here for D1 and what is it for D2?

Gabor

ps. Now that I saw this code, I am going to convert it to Path::Tiny, but I think the reason I have not used it earlier was that the 'path' function of that module and the 'path' function of Dancer would clash.