Very nice! Thanks lidden :-)
I have a test script for is_hash() subroutine, the test fails (on purpose) on the latest (17th) test. As soon as I read your reply, I stopped my search on the list resulted from i /^data::/, and run install Data::Diver. I then copied my test script (cp autovivification.pl data-diver.pl), and adjusted some lines. I run both test scripts in sequence to find exactly the same result.
1..17
ok 1 - id_2 is not supposed to exist
ok 2 - no autovivication for id_2
.....
not ok 17 - Since when we have a phone? Oh wait, autovivication is her
+e!
# Failed test 'Since when we have a phone? Oh wait, autovivication i
+s here!'
# at autovivification.pl line 117.
# Looks like you failed 1 test of 17.
And here is the 17th test (there's no 'phones' in 'home'),
print "Hey, we have a fax machine at home!\n" # can't happen
if $cds{id_1}{address}{home}{phones}{fax};
ok(!exists $cds{id_1}{address}{home}{phones},
'Since when we have a phone? Oh wait, autovivication is here!');
So at least I know it's worth not only for me. And tye has provided a much better solution.
I got some warning lines when installing....
t/base....Pseudo-hashes are deprecated at /.../.cpan/build/Data-Diver-
+1.0101-Sa9fgP/blib/lib/Data/Diver.pm line 140.
Pseudo-hashes are deprecated at /.../.cpan/build/Data-Diver-1.0101-Sa9
+fgP/blib/lib/Data/Diver.pm line 131.
Pseudo-hashes are deprecated at /.../.cpan/build/Data-Diver-1.0101-Sa9
+fgP/blib/lib/Data/Diver.pm line 140.
Open source softwares? Share and enjoy. Make profit from them if you can. Yet, share and enjoy!
|