--- loncom/homework/default_homework.lcpm 2001/10/29 21:15:44 1.39 +++ loncom/homework/default_homework.lcpm 2001/12/04 14:48:35 1.41 @@ -45,6 +45,8 @@ sub caparesponse_check { } elsif ($type eq 'mc') { $type = 5; } elsif ($type eq 'fml') { $type = 8; } elsif ($type eq 'subj') { $type = 7; + } elsif ($type eq 'float') { $type = 2; + } elsif ($type eq 'int') { $type = 1; } else { return "ERROR: Unknown type of answer: $type" } } @@ -101,22 +103,24 @@ sub get_array_args { # do these first, because who knows what varname the instructor might have used # but it probably isn't $CAPARESPONSE_CHECK_LIST_answer my $CAPARESPONSE_CHECK_LIST_answer = eval $expr.';return $'.$arg; #' + my $GET_ARRAY_ARGS_result; + my @GET_ARRAY_ARGS_list; if ($CAPARESPONSE_CHECK_LIST_answer =~ /^\s*[\$\@]/) { - my (@list) = eval $CAPARESPONSE_CHECK_LIST_answer; + (@GET_ARRAY_ARGS_list) = eval $CAPARESPONSE_CHECK_LIST_answer; } - my $result=''; - $result.="error:$@:
"; + $GET_ARRAY_ARGS_result.="error:$@:
"; # if the eval fails just use what is in the answer exactly - if (!defined(@list) || !defined($list[0])) { - $result.="list zero is undefined
"; - $list[0]=$CAPARESPONSE_CHECK_LIST_answer; + if (!defined(@GET_ARRAY_ARGS_list) || !defined($GET_ARRAY_ARGS_list[0])) { + $GET_ARRAY_ARGS_result.="list zero is undefined
"; + $GET_ARRAY_ARGS_list[0]=$CAPARESPONSE_CHECK_LIST_answer; } - return @list; + return $GET_ARRAY_ARGS_result,@GET_ARRAY_ARGS_list; } sub caparesponse_check_list { my ($response,$expr)=@_; - my (@list) = &get_array_args($expr,'answer'); + my $result; + my ($result,@list) = &get_array_args($expr,'answer'); my $aresult=''; my $current_answer; my $answers=join(':',@list);