作者nana0130 (小那)
看板Perl
标题[问题] 资料库栏位内容与txt档案内容比对
时间Tue Oct 5 18:06:36 2010
大家好
我是新手,我才自学一个月而已,
请鞭小力一点
我想要作一个功能,把txt里面一个字串,跟资料库某个栏位作比较
目前最迫切要做到这点~~~>"<
以下程式中 @stud_ans 是我开档去读一个txt,把里面的字串变成一个阵列
$hash_ref->{'Answer'}; 就是我要比对的资料库拦位,
正确的说,这个栏位存着标准答案
学生的答案,要跟标准答案作比较,往後再作一些正规表示法的比较
问题是,我根本没办法直接拿 $hash_ref->{'Answer'} 去作比较
感觉他好像关在while loop里面
出去外面大家就不认识他了
请问要怎麽拿出来比较呢????
这是我的网址
http://140.116.39.115/cgi-bin/ans.pl
============分隔线=========以下是程式码========================
#!c:\perl\bin\perl.exe
print "Content-type: text/html\n\n";
$file ='c:\\Program Files\\Java\\jdk1.6.0_21\\bin\\stanford-parser-2008-10-26
\\student_output.txt';
open(STUDENT_ANS,$file);
@stud_ans =<STUDENT_ANS>;
close(STUDENT_ANS);
print @stud_ans;
#以上是我开txt读出学生的答案,一定要读txt,这它的应用程式绑住了
#以下我开始连MYSQL
#想读出 answer 栏位
use DBI;
use strict;
my $dbh;
if ($dbh=DBI->connect("DBI:mysql:gram_sys","root","XXXXX0") )
{ print "Connect Database:test OK!\n"; }
else
{ print "can't connect database:test!"; exit(0); }
#check connect
print " <br> \n";
my $sql = "SELECT * FROM item_set WHERE SN=32";
my $sth = $dbh->prepare($sql);
$sth->execute;
while (my $hash_ref = $sth->fetchrow_hashref)
{
print $hash_ref->{'SN'};
print " <br> \n";
print $hash_ref->{'Answer'};
print $hash_ref->{'Question'};
}##end of while
$sth->finish;
$dbh->disconnect;
exit;
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.116.39.115
※ 编辑: nana0130 来自: 140.116.39.115 (10/05 18:11)
1F:推 rkcity:用了my等於宣告了他是这个block的私有变数 10/05 19:11
2F:推 rkcity:所以你可以在block外先宣告my $hash_ref, 10/05 19:14
3F:→ rkcity:或是while expression里不要加my 让他变全域变数 10/05 19:15
4F:→ nana0130:喔,谢谢你~~ 10/05 21:17