# The following was supposedly scribed by
# Sisyphus
# on Tuesday 21 June 2005 02:50 am:

>----- Original Message -----
>From: "Eric Wilhelm" <[EMAIL PROTECTED]>
>
>> Could you tie() it?
>
>If there's one thing I comprehend more poorly than 'pack' and
> 'unpack', it's 'tie'.

perldoc perltie
perldoc Tie::Array

>The beauty of that
> approach is that the existing DESTROY() function copes perfectly with
> the cleaning up of that "object packed with GMP objects" and the
> problem with memory management simply ceases to exist.
>The downside is that I didn't (and still don't) know how to access
> from perl those GMP objects that are packed into the object returned
> by the "real life" array_init() function.

Yes.  The tied array seems (er) perfect.  That is, you need a blessed 
object of class GMP::Array, which has a base class GMP.

The trouble is only in syntax, because you don't want @array, but 
instead $array = GMP::Array->new() (the oo name for array_init()), and 
then you'll want to be able to say $array->[4]->method().

So, maybe you have a class GMP::Array::Tied which implements the tying?  
You'll have to play around and see what you can get away with.

Maybe you're stuck with this two-variable interface:

  my $obj = tie @somearray, GMP::Array;

Which isn't soo bad.  You call the methods with $obj and go to 
individual values with @somearray.

However, those individual values won't be GMP objects (in the perl 
blessed-object sense), but they could be if you wrote the accessor 
methods for your tied class as if they were constructors (read that 
with a grain of salt, I'm not exactly sure it would work.)

--Eric
-- 
The only thing that could save UNIX at this late date would be a new $30
shareware version that runs on an unexpanded Commodore 64.
--Don  Lancaster (1991)
---------------------------------------------
    http://scratchcomputing.com
---------------------------------------------

Reply via email to