我有以下問題: 我有一個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