#!/usr/bin/perl -w use strict; use Config::Tiny; use Data::Dumper; # Open the config my $Config = Config::Tiny->read( 'status.ini' ) or die "could not open config.ini file"; #just to see what this looks like internally: print Dumper $Config; ##add new parameter (or would modify) $Config->{_}->{'newJOB'} = 'failed some stuff X'; #to discover and print the root names and their values: print "\nDiscover and print all rootnames (like Dumper does)\n"; my @jobs; foreach my $root_name (keys %{$Config->{_}}) { push (@jobs, $root_name); print " $root_name => $Config->{_}->{$root_name}\n"; } my $job2del = shift @jobs; print "deleting $job2del\n"; delete $Config->{_}->{$job2del}; $Config->write( 'status.ini' ); __END__ ***status.ini initial state: job4=fail date/time stampB newJOB=failed some stuff X job3=fail some time stuff AAAA ***program output: $VAR1 = bless( { '_' => { 'job3' => 'fail some time stuff AAAA', 'job4' => 'fail date/time stampB', 'newJOB' => 'failed some stuff X' } }, 'Config::Tiny' ); Discover and print all rootnames (like Dumper does) job3 => fail some time stuff AAAA job4 => fail date/time stampB newJOB => failed some stuff X deleting job3 ***status.ini final state job4=fail date/time stampB newJOB=failed some stuff X