use strict; use warnings; use Cwd qw{ abs_path }; use File::Basename; use File::Spec; my $scriptPath = abs_path( $0 ); my $path = ( fileparse( $scriptPath ) )[ 1 ]; my $configFileName = File::Spec->catfile( $path, q{spw750353.ini} ); open my $configFH, q{<}, $configFileName or die qq{open: < $configFileName: $!\n}; my $fileFromConfig = q{}; my $pathFromConfig = q{}; while( <$configFH> ) { if( m{^myfile=(.+)} ) { $fileFromConfig = $1; } elsif( m{^path=(.+)} ) { $pathFromConfig = $1; } else { warn qq{$_ : line not recognised\n}; } } close $configFH or die qq{close: < $configFileName: $!\n}; my $fullPath = File::Spec->catfile( $pathFromConfig, $fileFromConfig ); print qq{$fullPath\n};