- 论坛徽章:
- 0
|
sub Pro_biz_checkbox {
my(@class,@style,@level,$num, $string_class,$string_level,$string_style,$string); #这个语句如果换成下面这个语句
#my(@class,@style,@level,$num, $string_class,$string_level,$string_style,$string)=undef或则是"";都会取不到@class中的第一个数组元素.
foreach my $temp_values (keys%$FORM) { # 得到用户选择的
my $count=0;
for(@{$group->;[1]}) {
if ($temp_values eq $group->;[1]->;[$count]) { # 取出用户选择的数据
if ($temp_values=~/Biz_cate/) {
push(@class,$temp_values); # 分类
}elsif($temp_values=~/Biz_key4/){
push(@style,$temp_values); # 类型
}else{
push(@level,$temp_values); # 级别
}
}
$count++;
}
}
# 根据用户选择的生成SQL语句 --分类生成
$string_class=&Build_saith(\@class);
# 根据用户选择的生成SQL语法 --类型生成
#$string_style=&Build_saith(\@style);
# 根据用户选择的生成SQL语法 --级别生成
#$string_level=&Build_saith(\@level);
# 最后对生成的SQL语句进行检查
...
...
....
....
return \$string;
}
# 对用户选择的单字段进行SQL生成
sub Build_saith {
my $user_info=shift;
my ($num)=undef;
my ($string)=" (";
$num=@$user_info;
#print $num;
my $count=0;
for(@$user_info){ #这里进行调试,发现如果使用undef或"";对@class进行了初始化的话,那么将得不到$user->;[0]这里的数据。/
print "$count =>; ";
print $_,"<br>;";
$count++;
print "<br>;";
}
........
...........
.........
for(@$user_info){
my @info=split(/-/,$FORM->;{$_});
$string.=join_sql(\@info,$_);
}
$string=" ";
return \$string;
}
sub join_sql { #
.....
...
..
.
..
}
不清楚什么样原因造成的?perl bug?还是程序本身有问题?
搞了半天也没想通。不能不对其进行undef和"";操作了。
系统环境:
red hat 9.0 /mod_perl 1.99 |
|