Board logo

标题: [问题求助] 大婶帮忙看看单词比对的Perl小程序有木有什么问题啊 [打印本页]

作者: 949825667    时间: 2016-8-12 09:28     标题: 大婶帮忙看看单词比对的Perl小程序有木有什么问题啊

新手,想写一个单词比对的小程序
下面是两个文件列举的部分内容,小部分内容
这个写法有什么问题,我刚刚看入门书!最终目的:通过比对找到8k.txt里面有,但是n.txt里面没有的单词,目前这个代码写的是找到两个文档都的单词,但是也不对
有改的希望么?
8k.txt
abandon                        v.抛弃,放弃
abandonment                        n.放弃
abbreviation                        n.缩写
abeyance                        n.缓办,中止
abide                        v.遵守
ability                        n.能力
able                        adj.有能力的,能干的
abnormal                        adj.反常的,变态的

n.txt
alga
alumna
alumnus
amoeba
analysis
antenna
apex
appendix
auto
automaton
  1. open($IN,"<8k.txt") or die $!;
  2. open($sp_n,"<n.txt") or die $!;
  3. while(<$IN>){
  4.    chomp;
  5.    tr/\r\n//d;
  6.    s/\s+/ /g;
  7.    s/^\s+//;
  8.    s/\s+$//;
  9.    $line1=$_;
  10. if($line1=~/[a-z]*n\./){
  11.    ($word,$trans)=split(/\s+/,$line1);
  12.      $dic{$word}=$trans;
  13.   }
  14.   
  15. while(<$sp_n>){
  16.        chomp;
  17.        $line2=$_;
  18.        $sp_w{$line2}=1;
  19.          
  20.       
  21.     if(exists $dic{$line2}){  
  22.     print "$line2\n";
  23.    
  24. }
  25. }
  26. }
复制代码

作者: 949825667    时间: 2016-8-12 09:45

看着自己写的代码,真是不好意思!ugly!!!
作者: 949825667@qq.co    时间: 2016-8-12 10:33

自己解决了
作者: 949825667@qq.co    时间: 2016-8-12 10:44

本帖最后由 949825667@qq.co 于 2016-8-12 11:42 编辑

虽然还是很丑陋,不过至少能解决问题了
open($IN,"<8k.txt") or die $!;
open($sp_n,"<n.txt") or die $!;
while(<$IN>){
   chomp;
   tr/\r\n//d;
   s/\s+/ /g;
   s/^\s+//;
   s/\s+$//;
   $line1=$_;
if($line1=~/[a-z]*n\./){
           $line2=$line1;
           ($word,$trans)=split(/\s+/,$line2);       
     
  
$dic{$word}=$trans;
#print"$dic{$word}\n";


#print"$word\n";
while(<$sp_n>){
               chomp;
               $line3=$_;
       $sp_w{$line3}=1;}
         
               #print "$word\n";
         #foreach (keys %dic){
    if(!exists $sp_w{$word}){  
            print "$word\n";
          
         }
        #}

}
}
作者: 523066680    时间: 2016-8-12 10:56

本帖最后由 523066680 于 2016-8-12 11:03 编辑

回复 4# 949825667@qq.co


    楼上注册了两个号?到我的论坛吧,哈哈

code-by.org
作者: 949825667@qq.co    时间: 2016-8-12 11:02

回复 5# 523066680


    原来的账号忘记了,后来又想起来了
作者: 523066680    时间: 2016-8-12 11:21

本帖最后由 523066680 于 2016-8-12 11:23 编辑

回复 6# 949825667@qq.co


    发代码建议用 [ code ]代码[ /code ] 标签 这样代码比较直观也容易复制(实际使用时把空格去掉)。



作者: 949825667@qq.co    时间: 2016-8-12 11:24

回复 7# 523066680


    多谢多谢
作者: 523066680    时间: 2016-8-12 11:25

本帖最后由 523066680 于 2016-8-12 11:31 编辑

回复 8# 949825667@qq.co


    你看的是哪本书? 还有你的代码真的比较丑,上一门学的是什么语言
还有发上来的代码有一个双引号是错的

作者: 949825667@qq.co    时间: 2016-8-12 11:42

回复 9# 523066680


    没有语言基础,看的perl语言入门!至于那个错误,是因为我后来编辑了一下,可能打错了!
作者: wskwfkbdn    时间: 2016-8-12 14:43

小婶自己解决了




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2