2015-06-08 133 views
0

我不断收到类似Badly placed()'s的错误,我不明白为什么。“运行loc命令时出现错误()'错误

以下行给我这个打印

${tmp} = `${loc} ${"${type}_flag"} ${old_view_path}/${old_file} > ${tmpdir}/old_file`; 

我运行如下命令

system("${ct} startview ${new_view}"); 
system("${ct} startview ${old_view}"); 
${new_view_path} = "/view/${new_view}"; 
${old_view_path} = "/view/${old_view}"; 
${loc} = "/proj/uz/util/bin/loc"; 

@{file_types} =(); 
${file_type} = "Erlang"; 
push @{file_types},${file_type}; 
@{"${file_type}_ext"} = split /,/,"erl,hrl"; 
${"${file_type}_flag"} = "-erl"; 

${file_type} = "IDL"; 
push @{file_types},${file_type}; 
@{"${file_type}_ext"} = split /,/,"idl"; 
${"${file_type}_flag"} = "-erl"; 

${file_type} = "C"; 
push @{file_types},${file_type}; 
@{"${file_type}_ext"} = split /,/,"c,h"; 
${"${file_type}_flag"} = "-c"; 

${file_type} = "C++"; 
push @{file_types},${file_type}; 
@{"${file_type}_ext"} = split /,/,"cc, cpp, hh, hpp"; 
${"${file_type}_flag"} = "-c++"; 

${file_type} = "Assembler"; 
push @{file_types},${file_type}; 
@{"${file_type}_ext"} = split /,/,"s"; 
${"${file_type}_flag"} = "-c"; 

${file_type} = "Java"; 
push @{file_types},${file_type}; 
@{"${file_type}_ext"} = split /,/,"java,classes"; 
${"${file_type}_flag"} = "-c++"; 

foreach ${type} (@{file_types}){ 
    //The bellow give me sometimes error like badly placed()'s 
    ${tmp} = `${loc} ${"${type}_flag"} ${old_view_path}/${old_file} > ${tmpdir}/old_file`; 
} 

它显然是与我${"${file_type}_flag"},但我不知道如何调试这个。我怎样才能打印出它试图执行的命令?

不要提及${old_file}${new_file}不存在。他们是形式nameOfFile.hnameOfFile.cpp

+1

@ikegami:该OP说:“我怎样才能打印出来,它试图执行命令”,所以它显然没有* *想到他们这样做 – Borodin

+0

@Borodin,事实上,哎呀呀。 – ikegami

+0

上面的代码存在一些非常主要的焦点问题,从动态生成变量名称开始。 – ikegami

回答

0

上它显然是与我${"${file_type}_flag"},但我不知道如何调试这一点。我怎样才能打印出它试图执行的命令?

With print,当然。

print(qq{${loc} ${"${type}_flag"} ${old_view_path}/${old_file} > ${tmpdir}/old_file\n}); 

warn将其发送至STDERR。

warn(qq{${loc} ${"${type}_flag"} ${old_view_path}/${old_file} > ${tmpdir}/old_file\n}); 
相关问题