sub consume { my ($filehandle) = @_; my %result; while ( defined($_ = <$filehandle>) ) { chomp; next unless /dev/; ($mount_point, $total_space, $used_space, $free_space) = split; $result{$mount_point}{total} = $total_space; $result{$mount_point}{used} = $used_space; $result{$mount_point}{free)} = $free_space; } return %result; }