[ILUG] Perl Problem

John Tobin tobinjt at netsoc.tcd.ie
Thu Feb 7 21:19:10 GMT 2002


On Thu, Feb 07, 2002 at 07:09:48PM +0000, Gavin McCullagh wrote:
? my @friends = qw(Peter Paul Mary Jim Tim);
? (my $this,my $that) = shift2(@friends);

You're passing the array to shift2 rather than a reference to the
array. shift2 ( \@friends ); will do what you want. As someone else
pointed out predeclaring the functions will solve the problem because
perl then knows to pass a reference rather than the array.

? sub shift2 (\@) {
?       return splice(@{$_[0]}, 0, 2);
? }

Down here $_ [0] == "Peter", rather than a reference to @friends.

? Gavin

-- 
John
"That would preempt a bunch of problems involved in trying to reconstruct
exactly how the Perl 5 parser thinks, which nobody entirely understands."
			Larry Wall, 2001/04/20, perl6-language at perl.org
"Finger to spiritual emptiness underlying everything." -- How a Japanese C
manual referred to a "pointer to void".




More information about the ILUG mailing list