perl 程序逻辑问题请教

perl 程序逻辑问题请教

不好意思,脑笨,又来打扰大家了。
请问代码的注释是会么原因?第二次回圈的时候,变量值变成1了。
49行也出现未定义的错误。
Use of uninitialized value in pattern match (m//) at t_showdata.pl line 49.
34 my $media_id='';
35 my $media_name='';
36 my $guid;
37 my $referer;
38
39 while (my $hash_ref = $sth->fetchrow_hashref) {
40         my $addtime   =       $hash_ref->{'addtime'};
41         $guid         =       $hash_ref->{'guid'};
42         $referer      =       $hash_ref->{'referer'};
43         $log->debug("sql src  data addtime=$addtime, guid=$guid ,referer=$referer");
44
45         foreach my $media( @t_media_info_list )
46         {      
47                 $log->debug("print $referer");#这里DEBUG第二次回圈的时候,referer值成1了,请问这是什么问题?

48                 my $shortname = $media->[2];
49                 if($referer   =~ /$shortname/  && $media_id=='')
50                 {
51                 my $media_id = $media ->[0];
52                 my $media_name =  $media ->[1];
53                 last;
54                 $log->debug("add guid_hash_media_id guid=$guid, referer=$referer, media_id=$media_id");
55                 $showdata_guid_hash_media_id{$guid}=$media_id;
56                 $log->debug("add guid_hash_media_name guid=$guid,media_name=$media_name");
57                 $showdata_guid_hash_media_name{$guid}=$media_name;
58                 }
59         }
60 }




QUOTE:
原帖由 枫影谁用了 于 2009-1-8 14:43 发表
if($referer   = ~ /$shortname/  && $media_id=='')

这个 = 和 ~ 之间怎么会有个空格?


QUOTE:
原帖由 MMMIX 于 2009-1-8 15:41 发表

这个 = 和 ~ 之间怎么会有个空格?

贴出来的源故吧,没有的,先复制到word再复制上过来的。

把debug的代码贴出来
还有,说你没有定义的话就把变量打出来看看好了
还有,为啥要用word中转?
notepad不就可以了吗
用word可能会附加一些格式
起码这代码这里看不出什么问题
lz要不把所有的代码都给贴出来好了


QUOTE:
原帖由 枫影谁用了 于 2009-1-8 15:45 发表


贴出来的源故吧,没有的,先复制到word再复制上过来的。



你把错误的代码贴上来不是忽悠大伙么?


QUOTE:
原帖由 MMMIX 于 2009-1-8 17:00 发表



你把错误的代码贴上来不是忽悠大伙么?

不好意思。下次一定改。

用计事本打开再复制。

谢谢。
恩 起码再贴多点