The relevant documentation is
Symbolic references in
perlref. One important thing to understand is that you cannot interact with
lexical variables using symbolic references -- one reason your code won't work is because you can't see your set of specific variables. Correcting your example code,
use strict;
use warnings;
my $var_name_modifier1 = '100';
my $var_name_modifier2 = '200';
our $specific_200_var = "this is from 200\n\n";
our $specific_100_var = "this is from 100\n\n";
print "\n\n\n\n";
print 'this is what we have for 100: ';
NO_STRICT_BLOCK: {
no strict "refs";
print ${"specific_${var_name_modifier1}_var"};
}
print " \n\n";
Note the (likely) unexpected behavior seen for:
use strict;
use warnings;
our $value = "Valuable information";
print 'this is what we have: ';
NO_STRICT_BLOCK: {
my $value = 'Ha ha, I changed it!';
no strict "refs";
print ${"value"};
}
#11929 First ask yourself `How would I do this without a computer?' Then have the computer do it the same way.