--- loncom/interface/spreadsheet/assesscalc.pm 2005/05/17 20:14:19 1.50 +++ loncom/interface/spreadsheet/assesscalc.pm 2005/10/12 21:29:49 1.51 @@ -1,5 +1,5 @@ # -# $Id: assesscalc.pm,v 1.50 2005/05/17 20:14:19 albertel Exp $ +# $Id: assesscalc.pm,v 1.51 2005/10/12 21:29:49 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -703,15 +703,17 @@ sub parameter_part_is_valid { return 1; } # - my (undef,$part) = - ($parameter =~ m/^(resource|stores|parameter)_([^_]+)_.*/); - if (exists($self->{'Parts'}) && - exists($self->{'Parts'}->{$part}) && - $self->{'Parts'}->{$part} ) { - return 1; - } else { - return 0; + my ($start,@pieces)=split('_',$parameter); + if ( $start !~ m/^(resource|stores|parameter)$/) { return 0; } + while (@pieces) { + pop(@pieces); + my $testpart=join('_',@pieces); + if (exists($self->{'Parts'}->{$testpart}) && + $self->{'Parts'}->{$testpart} ) { + return 1; + } } + return 0; } sub compute {