Use of implicit split to @_ is deprecated at ./t line 7 (#1) (D deprecated) It makes a lot of work for the compiler when you clobber a subroutine's argument list, so it's better if you assign the results of a split() explicitly to an array (or list).