how does "shift" work? In other words what if I do this &Somefunction($var1, \@arry) sub SomeFunction { my $var = $_[0] my $array = shift; foreach(@{$array}) { print "$_\n"; } } How does the shift operator know which is which? I called it specifically earlier, because of this. What am I missing? Thanks so much On Tuesday 12 February 2002 10:06 am, Brett W. McCoy wrote: > On Tue, 12 Feb 2002, Steven M. Klass wrote: > > Let's start off with some simple code.. > > > > my $arg = &SomeFunction ( my @arry = qw/one two three/) > > > > > > > > sub SomeFunction { > > my @array = @_[0]; > > No, you are only grabbing the first element of @_. You should either pass > the array as a reference (best way), or just grab up the entire @_. > Keep in mind that if you pass an array and any scalars as arguments, they > will all be flattened out into @_, as a single list. This is why passing > a reference is better, to differentiate lists and scalars. > > SomeFunction([qw(one two three)]); > > sub SomeFunction { > my $array = shift; > foreach(@{$array}) { > print "$_\n"; > } > } > > -- Brett > http://www.chapelperilous.net/ > ------------------------------------------------------------------------ > Removing the straw that broke the camel's back does not necessarily > allow the camel to walk again. -- Steven M. Klass Physical Design Manager National Semiconductor Corp 7400 W. Detroit Street Suite 170 Chandler AZ 85226 Ph:480-753-2503 Fax:480-705-6407 steven.klass@nsc.com http://www.nsc.comThread Previous | Thread Next