Perl内部机制

26 views
Skip to first unread message

De-Jian Zhao

unread,
Jul 4, 2012, 3:15:53 AM7/4/12
to perl...@googlegroups.com
函数与参数列表间可以有空格,这在小骆驼中提到了。
$ perl -e ' print (2+3) x 3 '
5
$ perl -e ' print ((2+3) x 3) '
555

但是,sigil与变量名之间也可以有空格,这语法太灵活太松散了吧?
$ perl -e '$a=1; print $ a; '
1
$ perl -e '$a=1; print $ a + $ a; '
2
$ perl -e '$a=1; print $ a + $ ab; '
1
$ perl -e '$ a=1; print $a + $ a; '
2

Perl中如何来实现的?语句应当是根据分号 ; 来识别的吧?还有没有别的规则?
有没有讲述Perl语言内部机制的资料?大家给推荐一些。多 谢!

climby

unread,
Jul 4, 2012, 3:43:40 AM7/4/12
to perl...@googlegroups.com
这个就要讲到Perl的变量的命名规范了。变量只能以字符或者下划线开头。
显然空格是不能作为变量的开头的。因此 $    a = $a 的。 验证如下

$perl -e '$a=1; print "true\n" if ($  a == $a)'
true

所以这个就很容易解释你所得到的那些结果了。 其实不是print函数参数列表中空格的缘故哦。



在 2012年7月4日星期三UTC+8下午3时15分53秒,Tianping写道:

De-Jian Zhao

unread,
Jul 4, 2012, 4:03:28 AM7/4/12
to perl...@googlegroups.com
���������⡣�������˽������Perl���Ա�����ƵĶ�������֪����û��ʲô���Ͽ��Ƽ��������������Ӿ͸���ˡ�

On 2012-7-4 15:43, climby wrote:
�����Ҫ����Perl�ı���������淶�ˡ�����ֻ�����ַ� �����»��߿�ͷ��
��Ȼ�ո��Dz�����Ϊ�����Ŀ�ͷ�ġ���� $    a = $a �ġ� ��֤����

$perl -e '$a=1; print "true\n" if ($  a == $a)'
true

��������ͺ����׽�������õ�����Щ����ˡ� ��ʵ����print��������б��пո��Ե��Ŷ��



�� 2012��7��4��������UTC+8����3ʱ15��53�룬Tianpingд����
����������б�� �����пո�����С�������ᵽ�ˡ�
$ perl -e ' print (2+3) x 3 '
5
$ perl -e ' print ((2+3) x 3) '
555

���ǣ�sigil�������֮��Ҳ�����пո�����̫���̫��ɢ�˰ɣ�
$ perl -e '$a=1; print $ a; '
1
$ perl -e '$a=1; print $ a + $ a; '
2
$ perl -e '$a=1; print $ a + $ ab; '
1
$ perl -e '$ a=1; print $a + $ a; '
2

Perl�������ʵ�ֵģ����Ӧ���Ǹ�ݷֺ� ; ��ʶ��İɣ�����û�б�Ĺ���
��û�н���Perl�����ڲ����Ƶ����ϣ���Ҹ��Ƽ�һЩ���� л��

--
���յ����ʼ�����Ϊ������ Google ������̳�ġ�PerlChina Mongers �����顱��̳��
Ҫ�������ϲ鿴�����ۣ������ https://groups.google.com/d/msg/perlchina/-/W2O4SHeCfLIJ��
Ҫ���������̳�����뷢�͵����ʼ��� perl...@googlegroups.com��
Ҫȡ���Ĵ�������̳���뷢�͵����ʼ��� perlchina+...@googlegroups.com��
���и�����⣬��ͨ�� http://groups.google.com/group/perlchina?hl=zh-CN ���ʴ�������̳��

himem...@gmail.com

unread,
Jul 4, 2012, 7:40:44 AM7/4/12
to perl...@googlegroups.com
兰州想问的是“perl解释器可以如何实现”,不是“perl为什么可以这样”

Sent from my iPad

On 4 Jul, 2012, at 16:03, De-Jian Zhao <dejia...@gmail.com> wrote:

这个可以理解。我是想了解更多关于Perl语言本身机制的东西,不知道有没有什么资料可推荐,能有下载链接就更好了。


On 2012-7-4 15:43, climby wrote:
这个就要讲到Perl的变量的命名规范了。变量只能以字符 或者下划线开头。
显然空格是不能作为变量的开头的。因此 $    a = $a 的。 验证如下

$perl -e '$a=1; print "true\n" if ($  a == $a)'
true

所以这个就很容易解释你所得到的那些结果了。 其实不是print函数参数列表中空格的缘故哦。



在 2012年7月4日星期三UTC+8下午3时15分53秒,Tianping写道:
函数与参数列表间 可以有空格,这在小骆驼中提到了。
$ perl -e ' print (2+3) x 3 '
5
$ perl -e ' print ((2+3) x 3) '
555

但是,sigil与变量名之间也可以有空格,这语法太灵活太松散了吧?
$ perl -e '$a=1; print $ a; '
1
$ perl -e '$a=1; print $ a + $ a; '
2
$ perl -e '$a=1; print $ a + $ ab; '
1
$ perl -e '$ a=1; print $a + $ a; '
2

Perl中如何来实现的?语句应当是根据分号 ; 来识别的吧?还有没有别的规则?
有没有讲述Perl语言内部机制的资料?大家给推荐一些。多 谢!

--
您收到此邮件是因为您订阅了 Google 网上论坛的“PerlChina Mongers 讨论组”论坛。
要在网络上查看此讨论,请访问 https://groups.google.com/d/msg/perlchina/-/W2O4SHeCfLIJ
要向此网上论坛发帖,请发送电子邮件至 perl...@googlegroups.com
要取消订阅此网上论坛,请发送电子邮件至 perlchina+...@googlegroups.com
若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。

--
您收到此邮件是因为您订阅了 Google 网上论坛的“PerlChina Mongers 讨论组”论坛。
要向此网上论坛发帖,请发送电子邮件至 perl...@googlegroups.com
要取消订阅此网上论坛,请发送电子邮件至 perlchina+...@googlegroups.com
若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。

xatierlike Lee

unread,
Jul 4, 2012, 11:49:12 AM7/4/12
to perl...@googlegroups.com
Reply all
Reply to author
Forward
0 new messages