thx, I got it:)
And, I find two paragraph about this in Programming Perl(3rd):
6.2. Semantics
....
Any arguments passed to a Perl routine come in as the array @_. If you call a function with two arguments, they are accessible inside the function as the first two elements of that array: $_[0] and $_1. Since @_ is a just a regular array with an irregular name, you can do anything to it you'd normally do to an array.2 The array @_ is a local array, but its values are aliases to the actual scalar parameters. (This is known as pass-by-reference semantics.)
6.2.1. Tricks with Parameter Lists
Perl does not yet have named formal parameters, but in practice all you do is copy the values of @_ to a my list, which serves nicely for a list of formal parameters. (Not coincidentally, copying the values changes the pass-by-reference semantics into pass-by-value, which is how people usually expect parameters to work anyway, even if they don't know the fancy computer science terms for it.)