我有以下问题:我有一个 perl 程序,它正在提取 csv 文件,读取它们并输出结果。有关 csv 结构的信息位于上述档案中提供的 XML 文件中。在旧版本的程序中,我已经为 CSV 文件的每一行读取了这些 XML 文件,并且一切正常:
...;
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。抱歉描述不好,但我绝对是新手。先感谢您。