Having multiple statements in map {...} or grep {...} generates bad code. For example: @files = map { /\A(.*)\z/s; $1 } readdir $d;