Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何通过外部perl文件对其进行操作,将新的键值对添加到原始散列中所需的任何位置?_Perl - Fatal编程技术网

如何通过外部perl文件对其进行操作,将新的键值对添加到原始散列中所需的任何位置?

如何通过外部perl文件对其进行操作,将新的键值对添加到原始散列中所需的任何位置?,perl,Perl,将perl任务模块中的以下散列视为 package taskmoduleName; use vars qw( %hash); %hash = ( 'x1' => { 'fruits' => { 'candiedfruit' => { 'sugarcoated' => { 'fruitname1' => 'grapes', }, },

perl任务模块中的以下散列视为

package taskmoduleName; 
use vars qw( %hash);  
%hash = ( 
 'x1' => {  'fruits' => { 
               'candiedfruit' => {  
                   'sugarcoated' => {
                       'fruitname1' => 'grapes',  }, },   
                   'chocolatecoated' {  
                       'fruitname2' => 'cherries', }, },},    
            'vegetables' => {  
                 'fried' => {  
                    'salted' => {     
                       'veg1' => 'banana', }, }, },
'x2' => {    'xyz' => 
                  'xyz1 => 'hhh', },}, );
如何通过外部perl文件操作将新的键值对添加到原始哈希中所需的任何位置
另外,我不想修改原始文件中的任何内容,只想在其他文件中添加新条目。您可以执行以下操作:

use taskmoduleName;
$taskmoduleName{x1}{fruits}{long}{name} = 'rhubarb';
然而,这可能会导致代码脆弱且难以维护,因此不建议这样做


你为什么要这样做?也许这里有人能想出一种不同的方法。

你能更具体一点吗?您想添加什么条目以及添加到哪里?您是否打算用另一个perl脚本操作一个perl脚本中的代码?因为这听起来根本不是一个好的解决方案。有很多更好的方法可以序列化数据。PPI、eval、data::Diver、data::Dumper。是否要在运行时在使用该模块的脚本中修改哈希?或者您想修改文件本身吗?我想将新条目添加到任务模块中,但我不想更改任务模块中的任何其他内容,因为任务模块由另一个模块使用,@choroba说我想在“巧克力涂层”中添加条目“水果名3”=>“蔓越莓”。基本上,我需要知道如何遍历散列并添加新值。