rsdb.net
当前位置:首页 >> pErl为什么数组名不能是变量 >>

pErl为什么数组名不能是变量

你这样的命名本来就是错的... 去掉 strict, 你就不会发现这样的命名是不对的, 往後的处理也将是错的. ( 如果结果还是对的, 那只是你走运而已 ) 想像一下 my @array = ( 1..10 ); my $array[1] = 10; @array = (); print @array; 你还能理解 $arr...

1. @{....}[...] 先不论这里有没有写错, 但这种表达方式, 以 @ 开头, 头面有 [ ] , 我们叫 array slice 是应该放在等号右手边的 @arr0 = (0..10)@arr1 = @arr0[1..2]; # @arr1 = 1, 2$x = [ 1..10 ];@y = @{$x}[1,2]; # @y = 1, 2这里你放到了左...

你可以用hash,将名字作为键,指向一个数组,例如: perl -le ' $hash{"test"}[0]=1 ; $hash{"test"}[1]=100 ; print "@{$hash{\"test\"}}" ; '

当然可以了试试不就知道了

可以试一下这几种方式,每种方式各有优劣: #!/bin/perl -w use strict; my @arr = ( "aaa","bbb","ccc","ddd","eee","fff"); # 这个是数组 my $vv = "ddd"; # 这个是要查找的变量 # 方法1,:使用类似c语言的风格,遍历这个数组,查找变量是否匹...

#! /usr/bin/perl use strict; use warnings; my @array = (0 .. 9); my $tmp = 10; print "@array\n"; push(@array,$tmp); print "@array\n"; @array = $tmp + 1; print "@array\n"; ------------------------------------------------- 输出:...

使用Perl中的ref方法,可以判断一个引用是指向hash还是array。 if (ref($user) eq 'HASH') { # $user 指向的是HASH .... } elsif (ref($user) eq 'ARRAY') { # $user 指向的是数组 .... } else { .... }

你向子程序中传递的参数为一个数组的ref, max(\@array1); 那么你在子程序中用shift @_ 获得的只可能是一个数组ref地址,也就是最后输出的ARRAY 如果你在传递参数时,直接将数组传递给子程序,如max(@array1),那么,结果就会是你需要的那个样子。

别用qw了,qw是里的\n\t不转义的,相当于使用单引号。 你还是用@test = ("fred", "harley\n", "alison\t", "shawn");吧

不合理啊,既然$A[X1]存的是数,那么就不能存一个数组的引用来增长维度了 perl中你写了 $a[0][0]=1那么$a[0]就指向一个数组,这个是自动的

网站首页 | 网站地图
All rights reserved Powered by www.rsdb.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com