diff options
Diffstat (limited to 'pod/perlsub.pod')
-rw-r--r-- | pod/perlsub.pod | 13 |
1 files changed, 3 insertions, 10 deletions
diff --git a/pod/perlsub.pod b/pod/perlsub.pod index a38d05be25..9d725abe0d 100644 --- a/pod/perlsub.pod +++ b/pod/perlsub.pod @@ -48,15 +48,8 @@ there's really no difference from the language's perspective.) Any arguments passed to the routine come in as the array @_. Thus if you called a function with two arguments, those would be stored in C<$_[0]> and C<$_[1]>. The array @_ is a local array, but its values are implicit -references (predating L<perlref>) to the actual scalar parameters. What -this means in practice is that when you explicitly modify C<$_[0]> et al., -you will be changing the actual arguments. As a result, all arguments -to functions are treated as lvalues. Any hash or array elements that are -passed to functions will get created if they do not exist (irrespective -of whether the function does modify the contents of C<@_>). This is -frequently a source of surprise. See L<perltrap> for an example. - -The return value of the subroutine is the value of the last expression +references (predating L<perlref>) to the actual scalar parameters. The +return value of the subroutine is the value of the last expression evaluated. Alternatively, a return statement may be used to specify the returned value and exit the subroutine. If you return one or more arrays and/or hashes, these will be flattened together into one large @@ -503,7 +496,7 @@ Even if you don't want to modify an array, this mechanism is useful for passing multiple arrays in a single LIST, because normally the LIST mechanism will merge all the array values so that you can't extract out the individual arrays. For more on typeglobs, see -L<perldata/"Typeglobs and FileHandles">. +L<perldata/"Typeglobs and Filehandles">. =head2 Pass by Reference |