在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
不好分类的暂时都放到这里 直接比较数组名字即可,不必逐个元素比较。 my @a = (1..10) ; 但需要注意一点,如果是数组的引用,那么就不能直接比较了。必须先解引用再比较。 my $aref1 = [1..10] ; 先解引用再比较 my $aref1 = [1..10] ; 打印数组最笨的方法,多半来自其他语言比较熟悉的coder们。其中$#numbers表示数组numbers的最后一个元素的下标。在这里时9,所有要使用<=,而不是<,否则会漏掉最后一个元素。 my @numbers = (1..10); 其实普通数组直接打印即可,无需遍历。 my @a = (1..10) ; 需要注意,定义数组和哈希都使用圆括弧(),定义匿名数组用方括弧[],定义匿名哈希用花括弧{}。如果不小心把()写成了[],那么结果可能很奇怪,比如 my @b = [1..10] ; 为什么呢?因为=右边是[],实际上定义了一个匿名数组,但是=左边并非引用变量(引用变量需以$开头),而是数组,这就导致了将匿名数组的引用放入了数组b中,也就是说数组b只有一个元素,这个元素是指向匿名数组[1..10]的引用,所以下面两句产生同样的结果。 print @b ; 一个小结论:当数组只有一个元素的时候。print @array和print $array[0]的结果是相同的。有了这个结论,就不难想通上面两句为什么相同了。 判断某元素是否在数组中方法一 直接遍历数组,逐个元素判断。 方法二 是用grep my @Colors= ( 方法三 如果是perl 5.10.0以上,可以使用智能匹配,如下。 my @array = (1, 2, 3, 4, 5) ; 定义空列表定义空列表用(),而不是undef 下面代码输出1,这种写法表示列表的第一个元素是undef.严格的说并不是空列表。 my @list = undef; 下面代码输出2 my @list = (); unless(xxx) 与 unless defined(xxx)这两者是不一样的,前者表示xxx为假的时候执行代码,而后者表示xxx未定义时执行代码,也就是只有当xxx==undef时,后者才会执行,而前者以下几种情况都会执行的。 xxx==undef xxx=0 xxx='0' xxx='' xxx="" 将数组元素分组有一个数组含100个元素,请将每10个元素分为一组,分成10组,保存到一个新的数组中。 my @a = (1..100); 或者 my @a = (1..100); 来自CU == |
请发表评论