麻烦大家了,脑袋都糊涂了,请问这句赋值语句有问题吗?



QUOTE:
原帖由 zhouhaiming 于 2007-9-13 18:59 发表
C:\>type ccc.pl
$a='123';
$b='bbb';
$c=$a.'\'.lc("$b");
print "$c\n";
C:\>perl ccc.pl
Can't find string terminator "'" anywhere before EOF at ccc.pl line 3.

是不是我的Perl有问题啊?怪了

lz 你不看错误提示吗? 你少了个“\”
这是我改了的

[Copy to clipboard] [ - ]
CODE:
$a='123';
$b='BBB';
$c=$a.'\\'.lc("$b");
print "$c\n";

------------------------
>perl -w test2.pl
123\bbb
>Exit code: 0

我用的是单引号啊,元字符应该都去掉它们的特殊属性啊,单引号中的\还表示转义吗?


QUOTE:
原帖由 zhouhaiming 于 2007-9-13 19:06 发表
我用的是单引号啊,元字符应该都去掉它们的特殊属性啊,单引号中的\还表示转义吗?

请问 lz 看哪本书学 perl 的?

看过 learning perl 吗?
兄弟,我一本书都没看过,就直接用了,上学时候自己看的c,让大家笑话了,不过也干出上千行代码了,大部分都是猜的


QUOTE:
原帖由 cobrawgl 于 2007-9-13 19:08 发表


请问 lz 看哪本书学 perl 的?

看过 learning perl 吗?

兄弟能帮着解释一下吗?在那本书的哪部分啊,我也当一本看看


QUOTE:
原帖由 zhouhaiming 于 2007-9-13 19:11 发表
兄弟,我一本书都没看过,就直接用了,上学时候自己看的c,让大家笑话了,不过也干出上千行代码了,大部分都是猜的

你真牛。

不过,为了你能更好的使用 perl,建议你还是看几本 perl 的书吧。


QUOTE:
原帖由 zhouhaiming 于 2007-9-13 19:12 发表

兄弟能帮着解释一下吗?在那本书的哪部分啊,我也当一本看看



QUOTE:
2.2.1. Single-Quoted String Literals

A single-quoted string literal is a sequence of characters enclosed in single quotes. The single quotes are not part of the string itself but are there to let Perl identify the beginning and the ending of the string. Any character other than a single quote or a backslash between the quote marks (including newline characters, if the string continues onto successive lines) stands for itself inside a string. To get a backslash, put two backslashes in a row; to get a single quote, put a backslash followed by a single quote:

2.3.1 Single-Quoted String Literals
....
'\'\\'    # single quote followed by backslash

找到书中的解释了,Learning Perl 第3版,怪了Perl的单引号为啥去不掉元字符的特殊含义呢,我是用shell理解Perl呢


QUOTE:
原帖由 cobrawgl 于 2007-9-13 19:16 发表



多谢,哥们!看懂了,又进了一步,就像shell中的双引号不能取消$和\和`的特殊性一样,又学了一招,进步ing!!
3x,偶也一直以为……,谢谢cobrawgl