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

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

$filestr = $templatecfg{OUTPUT_PATH}.'\'.'wf_'.lc($map_var->{TARGET_TABLE}).'_init.xml';



QUOTE:
原帖由 zhouhaiming 于 2007-9-13 18:34 发表
$filestr = $templatecfg{OUTPUT_PATH}.'\'.'wf_'.lc($map_var->{TARGET_TABLE}).'_init.xml';

有。


$filestr = $templatecfg{OUTPUT_PATH}.'\\'.'wf_'.lc($map_var->{TARGET_TABLE}).'_init.xml';
单引号,没事
朋友还是不行,不过有进步了,原来写完上面这句,下面的代码都变灰了,现在不灰了,不过还是执行不了
print "$filestr\n";都不行
什么原因啊?糊涂了
这句话肯定有问题,是啊我也觉得单引号没事,可是不行啊,哪的问题呢,急的要死


QUOTE:
原帖由 zhouhaiming 于 2007-9-13 18:49 发表
朋友还是不行,不过有进步了,原来写完上面这句,下面的代码都变灰了,现在不灰了,不过还是执行不了
print "$filestr\n";都不行
什么原因啊?糊涂了

你贴个完整的代码嘛
太长了,400多行源码
单独打印$templatecfg{OUTPUT_PATH}和lc($map_var->{TARGET_TABLE})都行,就是把它们和其它字符串连起来就不行了,我都怀疑是Perl的问题了,就是简单的字符串相连啊,见鬼了
$templatecfg{OUTPUT_PATH}对应c:\parse\output
lc($map_var->{TARGET_TABLE})对应mid_plant_unit_reduce_pollute


QUOTE:
原帖由 zhouhaiming 于 2007-9-13 18:51 发表
太长了,400多行源码

我写个简单的测试,能打印啊

[Copy to clipboard] [ - ]
CODE:
#!/usr/bin/perl

use strict;
use warnings;

my %templatecfg;
my $map_var;

$templatecfg{OUTPUT_PATH} = qw{c:\parse\output};
$map_var->{TARGET_TABLE} = "mid_plant_unit_reduce_pollute";

my $filestr = $templatecfg{OUTPUT_PATH} . '\\' . 'wf_' . lc($map_var->{TARGET_TABLE}). '_init.xml';

print "$filestr\n";

--------------------------------------

>perl -w test.pl
c:\parse\output\wf_mid_plant_unit_reduce_pollute_init.xml
>Exit code: 0

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有问题啊?怪了