Re: arrays as pl/perl input arguments [PATCH]
От | Alex Hunsaker |
---|---|
Тема | Re: arrays as pl/perl input arguments [PATCH] |
Дата | |
Msg-id | AANLkTinrQTBXnAxWAzb-+OJNtOa0RcqrxeszEMLDYbWg@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: arrays as pl/perl input arguments [PATCH] (Martijn van Oosterhout <kleptog@svana.org>) |
Список | pgsql-hackers |
On Thu, Jan 13, 2011 at 01:06, Martijn van Oosterhout <kleptog@svana.org> wrote: > On Thu, Jan 13, 2011 at 12:06:33AM -0700, Alex Hunsaker wrote: >> > I had supposed that it would be possible to do the string conversion >> > lazily, ie, only if the string value was actually demanded. >> >> Yep, In-fact if we wanted we could even die (or throw an exception in >> other language speak :) ) when the string value is demanded. > > I played with this a little and it is fairly easy to make a variable > such that $a is the string representation and $a[0] the first value of > the array. The problem is that you can't pass such a variable into a > subroutine. [ snip ] > my @a=(1,2); > > tie $a, "MyClass", \@a; > > print "\$a='$a'\n"; > print "\$a[0]='$a[0]'\n"; Erm... the reason you can't seem to pass it to any subroutines is its actually 2 variables: $a, @a. When you print "$a\n"; you are using the tied variable that uses @a; And when you print "$a[0]\n"; you are accessing the array directly. I think you just had an unfortunate variable name, otherwise strict would have complained appropriately. :)
В списке pgsql-hackers по дате отправления: