#!/usr/bin/perl -w
use strict;
use Data::Dumper;
open (my $config_file_main ,"<","config18.txt" )or die $!;
open (my $config_file_update ,"<","config27.txt" )or die $!;
my %file1 = read_cfg ($config_file_main);
my %file2 = read_cfg ($config_file_update);
# this combines both hashes into one !!!!
# A simple "merge" operation.
# More complex things can be done
%file1 = (%file1, %file2);
# Usually it is better to print in
# a human readable format with sort
#
foreach my $key (sort keys %file1)
{
print "$key = $file1{$key}\n";
}
# This returns a list instead of list ref
# Of course using a ref is more efficient, but here I
# do something simple to illustrate points above..
#
sub read_cfg
{
my $file_handle = shift;
my %hash;
while (<$file_handle>)
{
next if /^\s*$/; #skip blank lines
my ($name,$value) = $_ =~ /^\s*(\S+)\s*=>\s*(\S+)/;
$hash{$name} = $value;
}
close ($file_handle);
return %hash;
}
####
config27:
CONFIG_BRIDGE_NF_EBTABLES => m
CONFIG_BRIDGE_EBT_BROUTE => y
CONFIG_BRIDGE_EBT_T_FILTER => z
##
##
config18:
CONFIG_BRIDGE_NF_EBTABLES => m
CONFIG_BRIDGE_EBT_BROUTE => m
CONFIG_BRIDGE_EBT_T_FILTER => m
CONFIG_BRIDGE_EBT_T_NAT => m
CONFIG_BRIDGE_EBT_802_3 => m
CONFIG_BRIDGE_EBT_AMONG => m
CONFIG_BRIDGE_EBT_ARP => m
CONFIG_BRIDGE_EBT_IP => m
CONFIG_BRIDGE_EBT_LIMIT => m
CONFIG_BRIDGE_EBT_MARK => m
CONFIG_BRIDGE_EBT_PKTTYPE => m
CONFIG_BRIDGE_EBT_STP => m
CONFIG_BRIDGE_EBT_VLAN => m
CONFIG_BRIDGE_EBT_ARPREPLY => m
CONFIG_BRIDGE_EBT_DNAT => m
CONFIG_BRIDGE_EBT_MARK_T => m
CONFIG_BRIDGE_EBT_REDIRECT => m
CONFIG_BRIDGE_EBT_SNAT => m
CONFIG_BRIDGE_EBT_LOG => m
CONFIG_BRIDGE_EBT_ULOG => m
##
##
CONFIG_BRIDGE_EBT_802_3 = m
CONFIG_BRIDGE_EBT_AMONG = m
CONFIG_BRIDGE_EBT_ARP = m
CONFIG_BRIDGE_EBT_ARPREPLY = m
CONFIG_BRIDGE_EBT_BROUTE = y
CONFIG_BRIDGE_EBT_DNAT = m
CONFIG_BRIDGE_EBT_IP = m
CONFIG_BRIDGE_EBT_LIMIT = m
CONFIG_BRIDGE_EBT_LOG = m
CONFIG_BRIDGE_EBT_MARK = m
CONFIG_BRIDGE_EBT_MARK_T = m
CONFIG_BRIDGE_EBT_PKTTYPE = m
CONFIG_BRIDGE_EBT_REDIRECT = m
CONFIG_BRIDGE_EBT_SNAT = m
CONFIG_BRIDGE_EBT_STP = m
CONFIG_BRIDGE_EBT_T_FILTER = z
CONFIG_BRIDGE_EBT_T_NAT = m
CONFIG_BRIDGE_EBT_ULOG = m
CONFIG_BRIDGE_EBT_VLAN = m
CONFIG_BRIDGE_NF_EBTABLES = m