如何通过外部perl文件对其进行操作,将新的键值对添加到原始散列中所需的任何位置?
将perl任务模块中的以下散列视为如何通过外部perl文件对其进行操作,将新的键值对添加到原始散列中所需的任何位置?,perl,Perl,将perl任务模块中的以下散列视为 package taskmoduleName; use vars qw( %hash); %hash = ( 'x1' => { 'fruits' => { 'candiedfruit' => { 'sugarcoated' => { 'fruitname1' => 'grapes', }, },
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”=>“蔓越莓”。基本上,我需要知道如何遍历散列并添加新值。