Beefy Boxes and Bandwidth Generously Provided by pair Networks
go ahead... be a heretic

Re: Re: perlapp, die, and __DATA__

by integral (Hermit)
on Apr 25, 2003 at 06:44 UTC ( #253081=note: print w/replies, xml ) Need Help??

in reply to Re: perlapp, die, and __DATA__
in thread perlapp, die, and __DATA__

Perl passes by alias, so using @_ instead of @ARGV will not prevent worries about modifying the global @ARGV. Options are to make a lexical copy (my @args = @ARGV) or to localise (local @ARGV = @ARGV).

use strict; use warnings; print "1: @ARGV\n"; foo(@ARGV); print "3: @ARGV\n"; sub foo { print "2a: @_\n"; $_[0] = "foobar"; print "2b: @_\n"; }

(Note however that the elements are aliased indivualluy into @_ not the whole array, so if @ARGV is empty there will be no modification as you are then adding a new element to @_ instead of modifying an element in @ARGV through @_.)

integral, resident of freenode's #perl

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://253081]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others wandering the Monastery: (7)
As of 2017-12-16 17:32 GMT
Find Nodes?
    Voting Booth?
    What programming language do you hate the most?

    Results (457 votes). Check out past polls.