Implementation of http://www.whatwg.org/specs/web-apps/current-work/multipage/microdata.html#microdata
There already is HTML::HTML5::Microdata::Parser in CPAN. But it has very heavy dependency and I can't install it. And more, package name should not include "HTML5" because HTML5 is just HTML now.
Currently just extract data to json.
string is for safety string programming.
string pragma define utf8 flagged string as 'string'. Perl treats non flagged string (eg. string only consisting of ASCII) sometimes, so the distinction of string and bytes is only in a programmer. Other programmers must read between the lines, this is bad.
This pragma provides explicit string definition. In this case, all of string must be flagged, and all programmers distinguish string or bytes.
And more, Perl should not make someone aware of internal encoding (utf8). It should be just called with string.
Config::Do is just a utility module for 'do' file.
'do EXPR' function of Perl core is not sane because it does not die when the file contains parse error or is not found.
This module provides config_do function which croaks errors and ensures that the returned value is HashRef.