On 5/4/2017 10:35 AM, Paul Fox wrote: > i guess this question is really about perl syntax, but it might > be something commonly done by backuppc users, so here goes: > > i have the following in my global config: > > $Conf{BackupFilesExclude} = { > '/' => [ > '/proc', > '/sys', > ], > '*' => [ > '.cache', > '.gvfs', > 'slocate.db', > 'ID', > '*._nobackup_', > '*.o' > ] > }; > > > sometimes i wish to augment this list for a particular host: > > $Conf{BackupFilesExclude} = { > '/' => [ > '/home', # /home is backed up separately on this host > '/proc', > '/sys', > ], > '*' => [ > '.cache', > '.gvfs', > 'slocate.db', > 'ID', > '*._nobackup_', > '*.o' > ] > }; > > clearly it would be cleaner not to have to duplicate the entire > data structure in the host's config file. > > is there a nice perl way to do something like this? syntax > intentionally left vague: > > $Conf{BackupFilesExclude} += { ... '/home' ....} > > i'd like to be able to append to either the '*' catchall array > or a share-specific array.
Off the top of my head, you could do it like this: push @{$Conf{BackupFilesExclude}{'*'}}, '/dir1', '/dir2', '/dir3'; push @{$Conf{BackupFilesExclude}{'/'}}, '/dir4', '/dir5', '/dir6'; You can also use an array instead of listing the new entries: push @{$Conf{BackupFilesExclude}{'*'}}, @newstuff; Untested, so the syntax may not be perfect... -- Bowie ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ BackupPC-users mailing list BackupPC-users@lists.sourceforge.net List: https://lists.sourceforge.net/lists/listinfo/backuppc-users Wiki: http://backuppc.wiki.sourceforge.net Project: http://backuppc.sourceforge.net/