in reply to Making use of a config file written in Perl

If you actually did have use strict in the included file patterns.pl, you'd have gotten

couldn't parse .../patterns.pl: Global symbol "@LOGE" requires explici +t package name at ...

This is because do does not see lexicals in the enclosing scope, i.e. your my @LOGE, which I suppose was the idea. Rather, the @LOGE in patterns.pl is treated as a separate package variable.

You could use string eval instead (which does see lexicals in the enclosing scope). I.e., read the contents of patterns.pl into a string and eval it

my $config; { local $/ = undef; open my $fh, "<", $MATCH_FILE or die $!; $config = <$fh>; } my $return; unless ($return = eval $config) {

Alternatively (and usually better), create a proper module and use Exporter.