perl赋值的问题,中括号
答案:3 悬赏:30 手机版
解决时间 2021-04-05 08:03
- 提问者网友:刺鸟
- 2021-04-04 15:00
perl赋值的问题,中括号
最佳答案
- 五星知识达人网友:纵马山川剑自提
- 2021-04-04 15:45
相当于数组的指针,可以用@$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";
}
}
}
这个例子便于全面了解点
类似的还很多
$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";
}
}
}
这个例子便于全面了解点
全部回答
- 1楼网友:轻熟杀无赦
- 2021-04-04 17:09
推荐答案正解,要学会用perldoc
- 2楼网友:街头电车
- 2021-04-04 16:51
在个用法叫做 ”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
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯