in reply to difficulty in understanding use of @_ and shift in a subroutine
Hi masood91, welcome to the monastery.
You're free to use whichever form you like to process arguments. There may be efficiency gains one way or the other, but usually that isn't overly important. More often, it just is more clear in the shift form.
You should be careful though, because your suggestion of using "my $a=@_" wont actually work as you hope. Instead $a will be set to the number of values contained in @_. What you'd want instead is:
my ($a) = @_; # force list context in the assignmentor
my $a = $_[0]; # set $a to the first parameter passedHere's an example where you might prefer to use shift:
abc('hello', 3271, 33, 44); sub abc{ my $a = shift; print "$a $_\n" for (@_) }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: difficulty in understanding use of @_ and shift in a subroutine
by masood91 (Novice) on Oct 27, 2014 at 06:19 UTC | |
by perlron (Pilgrim) on Oct 27, 2014 at 06:59 UTC |