perl赋值的问题,中括号
下面这个是perl脚本的内容,想问一下那个data0是个什么变量,数组?列表?怎么读取这个变量?注:我查了一下不是数组也不是列表呀#!/usr/bin/perlmy$da...
下面这个是perl脚本的内容,想问一下那个data0是个什么变量,数组?列表?怎么读取这个变量?
注:我查了一下不是数组也不是列表呀
#!/usr/bin/perl
my $data0 = [100, 125, 245, 147, 67]; 展开
注:我查了一下不是数组也不是列表呀
#!/usr/bin/perl
my $data0 = [100, 125, 245, 147, 67]; 展开
3个回答
展开全部
在个用法叫做 ”perl的引用“ 参见 http://perldoc.perl.org/perlref.html
上级一句,就是创建一个 名字为data0引用 指向 一个匿名数组。
如果你理解c的指针,c++ c#里面的引用的用法就会比较容易理解一点。
my $data0 = [100, 125, 245, 147, 67];
有可以等价写成
my @array = [100, 125, 245, 147, 67];
my $data0 =\@array;
引用其实起的变量别名的作用, 为了访问复杂结构更容易一些吧。
上级一句,就是创建一个 名字为data0引用 指向 一个匿名数组。
如果你理解c的指针,c++ c#里面的引用的用法就会比较容易理解一点。
my $data0 = [100, 125, 245, 147, 67];
有可以等价写成
my @array = [100, 125, 245, 147, 67];
my $data0 =\@array;
引用其实起的变量别名的作用, 为了访问复杂结构更容易一些吧。
参考资料: http://perldoc.perl.org/perlref.html
展开全部
相当于数组的指针,可以用@$data0来转换成数组
类似的还很多
$d={1=>2};
%{$d}
$m=sub{...}
&$m
...
类似的还很多
$d={1=>2};
%{$d}
$m=sub{...}
&$m
...
追问
我把分数提高了50分。
麻烦再请教一下,后面你举的例子能给我不厌其烦的解释一下吗?谢谢!
不管你是否回答,我都会采纳你的,谢谢了
追答
perl有一些引用方法,
@m=(1,2,3);
$d=\@m;
print ($m[1]== $d->[1]);
可以看到加上\引用的值是一样的
$m=[1,2,3];
print "@$m $m";可以看到打印出的数组元素,以及引用的的地址
$c=$m;这里相当于别名
$c->[1] = 0;
print $m->[1];改变$c指向的内容也就改变了$m引用的匿名数组元素
@$m=(2,3,4);
print $m->[1];
print "$m, $c";可以看到他们指向的是同一个数组地址
这样的话可以理解成C语言的指针
这样你就可以传递引用作为参数了
@m=(1,2);@n=(2,3);sum(\@m,\@n);print "@m";
sub sum{
my ($m,$n)=@_;
for (0..$#m){$m->[$_]+=$n->[$_];}
}
类似的
@m=(['+',sub{$_[0]+$_[1]}],
['-',sub{$_[0]-$_[1]}]);
$str="10+20 60-50 2+1";
while ($str =~/(\d+)(.)(\d+)/mg)
{
for (0..$#m)
{
if ($m[$_]->[0] eq $2)
{
print &{$m[$_]->[1]}($1,$3),"\n";
}
}
}
这个例子便于全面了解点
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
推荐答案正解,要学会用perldoc
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询