cheese=cabrales tomato=orlando mass=secret #### use strict; use warnings; use Config::Tiny; my $ini = Config::Tiny->new; my $outfile = 'pizza.ini'; my %data = ( 'cheese' => 'cabrales', 'tomato' => 'orlando', 'mass' => 'secret', 'USERNAME' => $ENV{'USERNAME'}, ); $ini->{'MySectionName'} = {}; # new section while( my ($key, $val) = each %data ) { $ini->{'MySectionName'}->{ $key } = $val; } $ini->write($outfile, 'utf8'); #### [MySectionName] USERNAME= cheese=cabrales mass=secret tomato=orlando #### use strict; use warnings; use feature qw/ say /; use Data::Dumper; my %data = ( 'foo' => 'bar', $cheese => 'cabrales', 'USERNAME' => $ENV{'USERNAME'} ); say Dumper( %data ); #### use strict; use warnings; use feature qw/ say /; use Data::Dumper; my %data = ( 'foo' => 'bar', '$cheese' => 'cabrales', 'USERNAME' => $ENV{'USERNAME'} ); say Dumper( \%data );