The "problem" is that the underscore in this case is an obscure feature. Most people will understand -d $filename while many will have to look up what the underscore does before they understand what -d (_) does. Use of obscure features makes code harder to understand and thus should be avoided unless there is a good reason for it. At least I think that's what pileofrogs meant.