open my $FH, '<' , $config or die "Cannot open $config: $!\n"; my $data = <$FH>; # removing a header line? or what? while (my $line = <$FH>) { next if /^\s*#|^$/; print "$1\n" while $data =~ m/\{([^}]*)\}/gx ; } close $FH;