我有以下问题: 我有一个perl程序,它正在提取csv文件,读取它们并输出结果。 有关csv结构的信息是在上述档案中提供的XML文件中。 在旧版本我已阅读这些XML文件CSV文件和everithing的每一行程序的精细工作:Perl - 分配散列 - 为什么分配的变量被更改?
...;
foreach $b (@gz_files)
{
if (index($b, 'condition1') >= 0
|| index($b, 'condition2') >= 0
|| index($b, 'condition3') >= 0)
{
$lt = localtime;
open (my $outputfile, '>>'.'/path_to_output/'.$dir_file.'.tmp')
|| die print $lfh "$lt - /path_to_output/$dir_file\.tmp - $!\n";
if ($b ne "")
{
# this is the procedure, which reads xml_files
%cv_tmp = eventstype::initialize($complex_xml_path, $rating_input_xml_path);
@EXPORT=qw(%cv_tmp);
...;
该代码添加从XML文件的结构为%cv_tmp变量。 在CSV文件的foreach行之后,我将%cv_tmp的值赋给进一步操作的%complex_vals。
...
%complex_vals=%mainfile::cv_tmp;
...
但这种操纵我注意到%cv_tmp更改后 - 这很奇怪,因为这是分配的右侧。 我不想在每个CSV行上更改%cv_tmp。 对不起,但我绝对是新手。 预先感谢您。
这没有证明问题。请提供可重现您的问题的最少量的可运行代码。 – ikegami 2013-02-26 12:04:02