in reply to How to get 0 to initialize a value
When I run your code I do not get the warnings you mention, but this line:
warning fatal error (praise be to monk of anomaly). @novel_list is a plain array not an array reference - it should be:
does give amy $first_novel = $novel_list->[$first_book];
my $first_novel = $novel_list[$first_book];
In Section
Seekers of Perl Wisdom