perl比较大小的问题

perl比较大小的问题

大家好,我是个菜鸟,问一个比较菜的问题
问题描述:把数组中的值与一个给定的值进行比较,数组中的$data[6]是有两个int类型的数据拼起来的,现在如果$data[6]< 0 or $data[6]>100就让$data[6]=50
出错信息:<出错,>出错,但是我把<,>换成lt gt后还是报错,错无信息变为lt ,gt 所在行出错
代码:
##################################

#my $BSIC_MIN = 0;
#my $BSIC_MAX = 100;
   
        if ( $data[6] < 0 or  $data[6] > 100 ) {
                $data[6] = 50;
        }


QUOTE:
出错信息:<出错,>出错,但是我把<,>换成lt gt后还是报错,错无信息变为lt ,gt 所在行出错

Perl 的出错信息什么时候支持中文了?
而且还这么口语化。
把 or 换成 ||   试试

你是int型,不能用gt lt 这种来比较,gt lt它是对字符串进行比较的

用 perl -w xx.pl 可以对你的程序进行检查
不会吧
是不是你前面有什么写错了
楼上的试了下,先说声谢谢
#!/usr/bin/perl -w
@data = {"11","22","33","44","55","66"};
if ($data[5] lt 0 || $data[5] gt 100) {
        $data[5] = 50;
        print $data[5];
}else{
        print $data[5];
}

我把or 改成||

运行结果:
Use of uninitialized value in string lt at E:\j2eepractice\perlpractice\iftest.pl line 3.(????)
50
输出完成 (耗时: 0 秒) - 正常终止
总算有个值出来了
if ($data[5] < 0 || $data[5] > 100) {
楼上好,按你的建议改了
#!/usr/bin/perl -w
@data = {"11","22","33","44","55","66"};
if ($data[5] < 0 || $data[5] > 100) {
        $data[5] = 50;
        print $data[5];
}else{
        print $data[5];
}
结果:
Use of uninitialized value in numeric lt (<) at E:\j2eepractice\perlpractice\iftest.pl line 3.
Use of uninitialized value in numeric gt (>) at E:\j2eepractice\perlpractice\iftest.pl line 3.
Use of uninitialized value in print at E:\j2eepractice\perlpractice\iftest.pl line 7.
输出完成 (耗时: 0 秒) - 正常终止
LZ,你想建立的是数组吧?你原来用的语言是C么?
@data = {"11","22","33","44","55","66"}; 改成 @data=(11,22,33,44,55,66);
数字可以不用双引号

PS. 强烈要求文件里面加入 use stirct; use warnings;
楼上好,改成你说的样子的确不报错.
但是实际情况是这样data[5]里边放的是一个字符串类型的数据,这个数据由两个int类型的数据组合得到,
如:在informix中    a.ncc || b.ncc
现在的要求就是:限制组合后的值大小,如果>100 or <0 让$data[5]= 50
perl中字符型和数字型,有发比较没有呢?
数组定义错了