La estructura del hash puede verse consultando el
constructor new:
sub new {
    my $class = shift;
    my $self = {
        capacity    => 0,       # total capacity of this knapsack
        numobjects  => 0,       # number of objects
        weights     => [],      # weights to be packed into the knapsack
        profits     => [],      # profits to be packed into the knapsack
        tableval    => [],      # f[k][c] DP table of values
        tablesol    => [],      # x[k][c] DP table of sols 
                                # (0 = out, 1 = in, 2 = in and out)
        solutions   => [],      # list of lists of object indexes 
        filename    => "",      # name of the file the problem was read from
        @_,
    };
    
    croak "Profits and Weights don't have the same size" 
           unless scalar(@{$self->{weights}}) == scalar(@{$self->{profits}});
    bless $self, $class;
}
Escriba el conjunto de métodos de acceso,
haciendo que cada vez que se busca una función y no se
encuentra,  AUTOLOAD  dinámicamente instale una entrada con la
función en la tabla de símbolos, de manera que la siguiente llamada
encuentre el método. Introduzca una prueba de regresión que 
verifique el funcionamiento. Modifique la documentación.
Casiano Rodríguez León
