in reply to trying to use strict :(

Essentially you are trying to create a hash-like operation using the horrible symbolic references. I would suggest that you use are real hash with array references as values:

... my %tasks = ( day => [], night => [], ip => [] ); ... foreach my $task ( keys %tasks ) { ... push @{$tasks{$task}},\%hash; }
And then strict will be happy and you will have cleaner code.

Check out perlref for more on references.

/J\