$ perl -T 4.dt.pl tiny path is /home/hogan/merrillpjensen.com/prod/lib/1.env.txt real bin is /home/hogan/merrillpjensen.com/prod $ #### #!/usr/bin/env perl use v5.030; use warnings; use Data::Dumper; use FindBin qw($RealBin); use Path::Tiny; my ($prefix,$website,$environment,$basedir); BEGIN { # truncate envelope $ENV{PATH} = '/bin:/usr/bin'; delete @ENV{qw(IFS CDPATH ENV BASH_ENV)}; # Make %ENV safer $prefix = "/home/hogan"; #needs to toggle with #$prefix = "/home/fred"; # $website = 'merrillpjensen.com'; use FindBin qw($RealBin); if ($RealBin =~ m!$prefix/$website/(dev|test|prod)!) { $environment = $1; # This is now untainted! $basedir = "$prefix/$website/$environment"; } else {die "Bad environment '$1'"; } } #my $tt = Template->new({INCLUDE_PATH => "$basedir/templates"}); # now I have Path::Tiny my $file_name="1.env.txt"; my $tiny_path=path($basedir, ,'lib',$file_name)->touchpath; say "tiny path is $tiny_path"; my $d = Data::Dumper->new( [ \%ENV ], ['*ENV'] )->Sortkeys(1)->Useqq(1)->Dump(); my $return = $tiny_path->spew( $d); say "real bin is $RealBin"; #### fred@fourth:/var/www/html/perlmonks$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 20.04.3 LTS Release: 20.04 Codename: focal fred@fourth:/var/www/html/perlmonks$ #### fred@fourth:/$ ls bin dev home lib32 libx32 media opt root sbin srv tmp var boot etc lib lib64 lost+found mnt proc run snap sys usr fred@fourth:/$ #### $prefix = "/home/hogan"; #needs to toggle with #$prefix = "/home/fred"; # #### $ cat 4.conf ############################################################################### # Log::Log4perl Conf # ############################################################################### log4perl.rootLogger = INFO, LOG1, SCREEN log4perl.appender.SCREEN = Log::Log4perl::Appender::Screen log4perl.appender.SCREEN.stderr = 0 log4perl.appender.SCREEN.layout = Log::Log4perl::Layout::PatternLayout log4perl.appender.SCREEN.layout.ConversionPattern = %m %n log4perl.appender.LOG1 = Log::Log4perl::Appender::File log4perl.appender.LOG1.filename = /home/hogan/Documents/hogan/logs/4.log4perl.txt log4perl.appender.LOG1.mode = append log4perl.appender.LOG1.layout = Log::Log4perl::Layout::PatternLayout log4perl.appender.LOG1.layout.ConversionPattern = %d %p %m %n $