http://www.perlmonks.org?node_id=1076438


in reply to Simultaneously reading from a file and serving data

This isn't addressing your question, but one thing I noticed in your code is your verbose method of initializing %data. Note:

use Test::More; use constant MY_KEYS => qw( rrqms wrqms reads writes rsecs wsecs avgrqsz avgqusz await svctm + util ); my $key = 'asdf'; my @list = ( 'a' .. 'l' ); my %data; ( undef, $data{io}{$key}{rrqms}, $data{io}{$key}{wrqms}, $data{io}{$key}{reads}, $data{io}{$key}{writes}, $data{io}{$key}{rsecs}, $data{io}{$key}{wsecs}, $data{io}{$key}{avgrqsz}, $data{io}{$key}{avgqusz}, $data{io}{$key}{await}, $data{io}{$key}{svctm}, $data{io}{$key}{util} ) = @list; my %data2; ( undef, @{ $data2{io}{$key} }{ +MY_KEYS } ) = @list; my %data3; @{ $data3{io}{$key} }{ +MY_KEYS } = @list[ 1 .. $#list ]; is_deeply \%data, \%data2, "Assigning an array to a slice."; is_deeply \%data, \%data3, "Assigning a slice to a slice."; done_testing(); __END__ __OUTPUT__ ok 1 - Assigning an array to a slice. ok 2 - Assigning a slice to a slice. 1..2

Dave