Thank you for answers, ikegami and LanX, I understand the situation is pre-history heritage. Just curious, how it came that only open, opendir, print, printf actively object against "symbolic references" under use strict, in these Modern Perl times :). Even if it's too low priority to fix code, maybe stream-lining documentation would be not too much work -- now, where it's clearly stated strings are OK as indirection mechanism, the tone seems neutral or passively-encouraging :). Otherwise, to add to confusion, some built-ins (-X, etc.) accept both filehandles and strings (scalars/expressions), but here strings are filenames. Further curiosity, why all other /.*dir/ built-ins didn't possess indirection ability, in pre-history.