[已解决]如何避免这样的冲突?

楼上的兄弟,你前面说的是
"${var1}{string}" 不行,改成 "${var1}\{string}" 就好了,
现在又变成
"$var{var1}{string}" 不行,改成 "$var\{var1}{string}" 就好了,
到底斜杠应该加在第几个花括号那里呀?


QUOTE:
原帖由 zhuomingliang 于 2007-12-18 13:47 发表


我这里举个类似的吧

#!/usr/bin/perl



$var = 'dd';

%var = (
    ccc    => { dddd => 'dddddddc'}
);

print "$var{ccc}{dddd}";
print "\n";
print "$var\{cc ...

这和你前面说的不一样啊?
print "$var\{ccc}{dddd}";
print "${var}{ccc}{dddd}";
这两种情况还是没区别。

print "$var{ccc}{dddd}";
print "${var}{ccc}{dddd}";
这两个本身就不一样啊。


QUOTE:
原帖由 flw 于 2007-12-18 13:51 发表
楼上的兄弟,你前面说的是
"${var1}{string}" 不行,改成 "${var1}\{string}" 就好了,
现在又变成
"$var{var1}{string}" 不行,改成 "$var\{var1}{string}" 就好了,
到底斜杠应该加在第几个花括号那里呀?

一个多月了,我实在不知道以前是怎么产生误解的了,只知道当时希望在之间有个不产生输出的分隔符就可以了(当时忘记了可以使用'\',脑子短路,呵呵)。

刚才和现在这代码,只是模拟一下误解的可能。


#!/usr/bin/perl


$var = 'dd';

%var = (
    ccc    => 'ddd'
);

print "$var{ccc}\{dddd}"; # 正常


print "\n";
print "$var{ccc}{dddd}";  # 被误解了