免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1203 | 回复: 0
打印 上一主题 下一主题

關於 " 和 ' 的問題 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-02-05 15:41 |只看该作者 |倒序浏览
我再研究一個問題 就是單引號和雙引號 的問題

        $Source = "a星許功一1二2三3四4五5六6柒7捌8九9拾";
        $Source_unpack = decode('big5',$Source);
        print "替換前字串 = $Source\n";

上面 光 這樣子 沒做任何動作 出來的結果就不一樣了
結果會是

替換前字串 = a星野中G2三3四4五5六6柒7捌8九9拾

但是 如果換成 單引號 如下

        $Source = 'a星許功一1二2三3四4五5六6柒7捌8九9拾';
        $Source_unpack = decode('big5',$Source);
        print "替換前字串 = $Source\n";

結果會是 我想要的

替換前字串 = a星許功一1二2三3四4五5六6柒7捌8九9拾

或許各位大大會認為 用單引號就好了 可是 $Source 將來是 有大量的變動資料回圈 都是以 變數回來的

所以想請問 如果這樣子 要如何 才能讓  $Source 一直保持原變數不變 像用 單引號一樣 直到 print 出來

多謝
以下是 我目前呆呆回圈替換法的程式方式

        #主程式--開始
        open(IN,"./PattenMap.txt");
        my @PattenMap_DATA = <IN>;
        close(IN);
       
        $Source = 'a星許功一1二2三3四4五5六6柒7捌8九9拾';
        $Source_unpack = decode('big5',$Source);
        print "替換前字串 = $Source\n";


        #字元匹配轉換-開始
        while(<@PattenMap_DATA>){
                my ($PattenSource,$PattenTarge) = split(/\=/,$_);chomp $PattenSource;chomp $PattenTarge;#分離對應碼並清除多餘值
                $PattenSource_decode = decode('big5',$PattenSource);$PattenTarge_decode = decode('big5',$PattenTarge); #對應碼解碼
                $Source_unpack =~ s/$PattenSource_decode/$PattenTarge_decode/g; #對應碼替換
                $PattenSource="";$PattenSource_decode="";$PattenTarge="";$PattenTarge_decode=""; #對應碼參數歸0
        }
        $Source = encode('big5',$Source_unpack); #對應碼編碼
        #字元匹配轉換-結束

        print "替換後字串 = $Source\n";

PattenMap.txt 前面ok 後面就可以更多 之後會再用資料庫來做替換方式
'一'='壹'
'二'='貳'
'三'='參'
'四'='肆'
'五'='伍'
'六'='陸'
'七'='柒'
'八'='捌'
'九'='玖'
'十'='拾'
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP