Curated list of Perl modules

See Perl.html
It's an example of the fabulous TiddlyWiki (tiddlywiki.com), so it's about 230,000 bytes.

Config::Tiny V 2.30 supports keys with arrays as values

Yes, it's true. Config::Tiny now allows you to assign an array of values to a key.
Various examples are documented there and in test files. Sample usage:

[section]
greetings[]=Hello
greetings[]=World!
one=two
Foo=Bar

Note: The 2 lines of greetings can be separated by other lines too.

You access these values like this:
say $Config->{section}->{greetings}->[0];
say $Config->{section}->{greetings}->[1]

This patch was kindly provided by Steven Schoch.…

Railroad diagrams for SQL 2003 and SQL 2016

On github at https://github.com/ronsavage/SQL you will find a repo of SQL stuff created by Jonathan Leffler.

I recently added some files for SQL 2003 and SQL 2016, created by Domingo Alvarez Duarte.

Specifically, look for:
o sql-2003-2.ebnf
o sql-2003-2.ebnf.readme
o sql-2003-2-railroad-diagrams.xhtml
o sql-2016.ebnf
o sql-2016.ebnf.readme
o sql-2016-railroad-diagrams.xhtml

I'd suggest downloading the *.xhtml files and viewing them locally, rather than hammering the on-line convertor men…

News regarding GraphViz2

Ed J has taken over maintenance of my suite of GraphViz2 modules.

The first change has been to split it into multiple distros, so that anyone using just GraphViz2 will have a much smaller download and only 6 pre-reqs.

Another change is to rework the decision, which I copied from the original www.graphviz.org, and which meant nodes and port names were joined with a colon. For e.g. MS Windows users wanting to represent disk names like C:, this is clearly problematic.

There is a new option combine_node_and_port, which defaults to true but in May 2021 or so will switch to defaulting to false. When true, the current problematic behaviour occurs. When false, more DWIM-ish behaviour happens:

my $gv = GraphViz2->new(global => {combine_node_and_port => 0});

$gv->add_node(name => 'struct3', shape => 'record', label => [
   { text => "hello\\nworld" },
   [
     { text => 'b' },
     [
       { text => 'c{}' }, # reproduced literally
       { text => 'd', port => 'here' },
       { text => 'e' },
     ]
     { text => 'f' },
   ],
   { text => 'g' },
   { text => 'h' },
]);

$gv->add_edge(from => 'c:\\autoexec.bat', to => 'struct3',
  headport => 'here');

Also, Ed will in due course be introducing an internal object based on the Graph module, as a way of storing nodes etc. For all users who have not made assumptions about the internal storage (hint, hint), there should be no visible changes.

Keyhole surgery 100% successful

Part 1.

On Match 20th I had keyhole surgery to repair the aortic arch.

The lining had peeled off the wall. This happens when the lining develops a tear due to (in my case) childhood and later stress. Then, blood is pumped thru the tear and thus between the lining and the wall. Where the blood ought to go is called the 'true lumen' and when it's behind the lining and thus where is should not be - which is the bad news - , is called the 'false lumen'. So it's blood pressure in the false lumen whic…