免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1894 | 回复: 8
打印 上一主题 下一主题

古怪的问题,奇怪的输出 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-01-19 11:45 |只看该作者 |倒序浏览
初学perl,自己写了个测试例子,用来测试列表复制和列表在标量上下文中的值,但是结果无法理解,请大家指教一下。

my @socks = my ($a, $b) = qw /aaa/;
my $m = @socks;
print "\$m is : $m\n";

my $n = my ($c, $d) = qw /aaa/;
print "\$n is : $n\n";

论坛徽章:
0
2 [报告]
发表于 2010-01-19 11:56 |只看该作者
友情提示:你没把结果贴出来。

论坛徽章:
0
3 [报告]
发表于 2010-01-19 12:01 |只看该作者
没啥奇怪的

刚学理解不了上下文   就不要把程序写成一行

论坛徽章:
0
4 [报告]
发表于 2010-01-19 12:07 |只看该作者
原帖由 cheney_lang 于 2010-1-19 11:45 发表
初学perl,自己写了个测试例子,用来测试列表复制和列表在标量上下文中的值,但是结果无法理解,请大家指教一下。

my @socks = my ($a, $b) = qw /aaa/;
my $m = @socks;
print "\$m is : $m\n";

my $ ...


列表赋给标量是个数,
标量赋给列表只有第一个得到值,所以my ($a, $b) = qw /aaa/;$b为undef,但是之后还是会把这个undef给@sock的
列表赋给列表。。

learning perl里面有的

祝你好运

论坛徽章:
0
5 [报告]
发表于 2010-01-19 12:10 |只看该作者
原帖由 hitsubunnu 于 2010-1-19 12:01 发表
没啥奇怪的

刚学理解不了上下文   就不要把程序写成一行

我是为了更好的理解上下文才写成一行的,如果你能理解就请解释原因,给别人帮助,如果你自己都不懂的话这样说话有意思么?

论坛徽章:
0
6 [报告]
发表于 2010-01-19 19:50 |只看该作者
my @socks = my ($a, $b) = qw /aaa/;
my $m = @socks;
$m 返回数组大小 2,很容易理解

my $n = my ($c, $d) = qw /aaa/;
$n 右边是个列表赋值,因此返回等号右边list的元素个数 1

论坛徽章:
0
7 [报告]
发表于 2010-01-19 20:06 |只看该作者
原帖由 maybenot 于 2010-1-19 12:07 发表

learning perl里面有的


嗯,看learning perl,要深入的看,边看边想。

论坛徽章:
0
8 [报告]
发表于 2010-01-19 21:32 |只看该作者
原帖由 maybenot 于 2010-1-19 12:07 发表


列表赋给标量是个数,
标量赋给列表只有第一个得到值,所以my ($a, $b) = qw /aaa/;$b为undef,但是之后还是会把这个undef给@sock的
列表赋给列表。。

learning perl里面有的

祝你好运

你真的该看看 learning perl 了……

论坛徽章:
1
狮子座
日期:2013-12-16 16:09:24
9 [报告]
发表于 2010-01-20 03:47 |只看该作者
我也理解所谓初级Perl程序员写的代码要中级Perl程序员维护的道理了.
这种问题属于"需要掌握的知识么"?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP