--- loncom/homework/default_homework.lcpm 2001/08/22 21:04:58 1.34
+++ loncom/homework/default_homework.lcpm 2001/10/01 20:15:30 1.37
@@ -16,7 +16,7 @@ sub caparesponse_check {
#not properly used yet: calc
#not to be used: $ans_fmt
my ($answer,$type,$tol,$sig,$ans_fmt,$unit,$calc) =
- eval $expr.';return ($answer,$type,$tol,$sig,$ans_fmt,$unit,$calc);';
+ eval $_[1].';return ($answer,$type,$tol,$sig,$ans_fmt,$unit,$calc);';
my $tol_type=''; # gets it's value from whether tol has a % or not done
my $sig_lbound=''; #done
@@ -87,11 +87,11 @@ sub caparesponse_check {
return "$result:
Error $error:
Answer $answer:
Response $response:
type-$type|$tol|$tol_type|$sig:$sig_lbound:$sig_ubound|$unit|
$message$expr";
}
-sub caparesponse_check_list {
- my ($response,$expr)=@_;
+sub get_array_args {
+ my ($expr,$arg)=@_;
# 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 $answer';
+ my $CAPARESPONSE_CHECK_LIST_answer = eval $expr.';return $'.$arg; #'
my (@list) = eval $CAPARESPONSE_CHECK_LIST_answer;
my $result='';
$result.="error:$@:
";
@@ -100,6 +100,12 @@ sub caparesponse_check_list {
$result.="list zero is undefined
";
$list[0]=$CAPARESPONSE_CHECK_LIST_answer;
}
+ return @list;
+}
+
+sub caparesponse_check_list {
+ my ($response,$expr)=@_;
+ my (@list) = &get_array_args($expr,'answer');
my $aresult='';
my $current_answer;
$result.="Got response :$CAPARESPONSE_CHECK_LIST_answer:$list[0]:
";