Hi fellows,
i would like to point out the different behavior of glob utilized in scalar context when the key is a variable or a literal.
WRONG
my @sign_arr=('A1' .. 'A9');
for my $sign (@sign_arr) {
my $filename = <*$sign*.pkl>;
print "$filename\n" if defined($filename);
}
# OUTPUT:
# file_A1_.pkl
# file_A3_.pkl
# file_A5_.pkl
# file_A7_.pkl
# file_A9_.pkl
# RIGHT
my $filename;
$filename = <*A1*.pkl>;
print "$filename\n" if defined($filename);
$filename = <*A2*.pkl>;
print "$filename\n" if defined($filename);
$filename = <*A3*.pkl>;
print "$filename\n" if defined($filename);
$filename = <*A4*.pkl>;
print "$filename\n" if defined($filename);
$filename = <*A5*.pkl>;
print "$filename\n" if defined($filename);
$filename = <*A6*.pkl>;
print "$filename\n" if defined($filename);
$filename = <*A7*.pkl>;
print "$filename\n" if defined($filename);
$filename = <*A8*.pkl>;
print "$filename\n" if defined($filename);
$filename = <*A9*.pkl>;
print "$filename\n" if defined($filename);
# OUTPUT:
# file_A1_.pkl
# file_A2_.pkl
# file_A3_.pkl
# file_A4_.pkl
# file_A5_.pkl
# file_A6_.pkl
# file_A7_.pkl
# file_A8_.pkl
# file_A9_.pkl
A bug?