disgusting_guy
This is exactly my point, there should be no autovivification - I'd wager most people using perl these days don't know what they're doing, they're reluctantly editing some legacy code.
It's a dangerous default behaviour that can lead to very hard to debug errors. Most languages don't do this so people don't expect it; I don't know C# but can immediately tell what the code you wrote is doing. Explicit is better.
It's extra confusing because if you try and dereference undef without accessing a value it's an error:
perl -Mstrict -WE 'my $test; say @{ $test };'
Can't use an undefined value as an ARRAY reference at -e line 1.
What harm is there in a warning? You can disable classes of warnings in perl if you want to, or turn them off completely. I would much rather be explicit so I don't accidentally use some magic. perl -wE 'my @test; say $test[5]{yes}[0]{ok}++; say scalar @test; say ref $test[5]; say $test[5]{yes}[0]{ok}'
outputs: 0
6
HASH
1
with not a single warning"Alexa, play some soft rock"
"Alexa, set a timer for 10 minutes"
"Alexa, skip this track"
"Alexa, how long do I boil an egg for"
>that's as reliable as it gets when inserting into any database including SQL
The difference being in a SQL database you call commit and all this happens for you automatically
David Bigagli also says in the first post in that thread:
IBM does not have a technical answer to OpenLava and to the benefit its users have.
They cannot articulate why their software is better than OpenLava for the money they charge for it.
IBM fears OpenLava because is does provide a better functionality than their own software and
that's why it can only reply with a lawsuit by hiring:
Kirkland & Ellis LLP.
Sounds like there might be slightly more to this than is outlined in comments.