The
<...> can mean two different things: either a
readline, or a
glob. To be interpreted as the former, the thing inside the angle brackets must be a scalar, or a typeglob, or a typeglob reference, which it isn't here. It's usually cleaner to use
glob directly, i.e.
$bcsdir = (glob "$bcsdir*")[0];
map{substr$_->[0],$_->[1]||0,1}[\*||{},3],[[]],[ref qr-1,-,-1],[{}],[sub{}^*ARGV,3]