in reply to Shorten the list of computation

If your variables have utterly different names and completely different purposes, which prevents from putting them into one array, you might want to use something like
{ no strict 'refs'; my @incs = qw( index chapter index pages names ); for my $i (@incs) { ${"total_$i"} += $$i; } }
It would still be better if you first built up an hash with hard references and then iterate through the command list
my %incs = (index => [ \$index, \$total_index ], chapter => [ \$chapter, \$total_chapter ], pages => [ \$pages, \$total_pages ], names => [ \$names, \$total_names ] ); my @incs = qw( index chapter index pages names ); ${$incs{$_}->[1]} += ${$incs{$_}->[0]} for (@incs);
This does not violate use strict (assuming that you have declared all your variables before);