永发信息网

perl赋值的问题,中括号

答案:3  悬赏:30  手机版
解决时间 2021-04-05 08:03
perl赋值的问题,中括号
最佳答案
相当于数组的指针,可以用@$data0来转换成数组
类似的还很多
$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
在个用法叫做 ”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;
引用其实起的变量别名的作用, 为了访问复杂结构更容易一些吧。

参考资料:http://perldoc.perl.org/perlref.html

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
五十五岁男人每天喝两次白酒,每次喝三两左右
C# 网络连接判断
比利时企业工资怎么样,怎么能看出爸妈宠狗粮
神武269tc怎么上1400攻击
已知两圆的半径分别是3和4,圆心距的长为1,
在安徽省比一本线高80分,可以报哪些学校
我买的期房,预售合同上只写的我的名,现在还
全国有多少叫王廉政的
有没有关于姐弟之间的一些感人的话
表现矛盾纠结的诗句,描写纠结的句子
单选题Hedideverythingwithafullheart.___
46岁至55岁男女丧偶比例是多少
意蜂卵脾和虫脾怎样识别
事业单位矿工怎么处理,事业单位职工旷工如何
12.5英寸笔记本实用吗
推荐资讯
分数除法:食堂有一批大米,第一周用去了总数
三十多年皮肤一直很光滑,为什么突然变得有鸡
在一起五年的女朋友如今要分手我该怎么办?
续可以组可以组什么词,落枕的落能组啥词
如何用JS获取translate3d中的数值
益农农资有限责任公司地址在哪,我要去那里办
好再来骨头馆我想知道这个在什么地方
西安大明宫为什么不在古城墙内
8+3=12+2x x等于多少
华硕B25M-PLUS主板配什么牌子的内存条好,多
黄金路双语幼儿园地址在什么地方,想过去办事
用蒙语滚蛋怎么说?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?