develooper Front page | perl.beginners | Postings from February 2002

RE: Arrays 1x3 or 3x1 - The real questions

Thread Previous | Thread Next
From:
Timothy Johnson
Date:
February 12, 2002 13:30
Subject:
RE: Arrays 1x3 or 3x1 - The real questions
Message ID:
C0FD5BECE2F0C84EAA97D7300A500D5002580F4E@SMILEY

If shift appears by itself, then it removes the first element in the @_
array and returns it.  If an array is specified(i.e. shift @array), then it
uses that array.

-----Original Message-----
From: Steven M. Klass [mailto:Steven.Klass@nsc.com]
Sent: Tuesday, February 12, 2002 1:20 PM
To: Brett W. McCoy
Cc: beginners@perl.org
Subject: Re: Arrays 1x3 or 3x1 - The real questions


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.com


-- 
To unsubscribe, e-mail: beginners-unsubscribe@perl.org
For additional commands, e-mail: beginners-help@perl.org


--------------------------------------------------------------------------------
This email may contain confidential and privileged 
material for the sole use of the intended recipient. 
If you are not the intended recipient, please contact 
the sender and delete all copies.

Thread Previous | Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About