--- loncom/homework/default_homework.lcpm 2001/10/29 21:15:44 1.39 +++ loncom/homework/default_homework.lcpm 2001/11/27 14:57:54 1.40 @@ -101,22 +101,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);