Front page | perl.bootstrap |
Postings from July 2000
Re: perl 6 requirements
From:
Buddha Buck
Date:
July 31, 2000 12:19
Subject:
Re: perl 6 requirements
Message ID:
4.3.2.7.0.20000731145053.00b39950@armstrong.cse.buffalo.edu
At 02:40 PM 7/31/00 -0400, Ted Ashton wrote:
>Hildo,
> P'raps you've not run across it, but there are situations where one is
> given
>a datastructure created by another language (in my case, usually through being
>handed a file with records built by a certain structure). I have to unpack
>those records, deal with the data, and likely pack up the data as a fixed-size
>record to ship on to the next (non-Perl) thing. If I could define a data
>structure with fixed sizes and just say, "put the data in this space,
>here," it
>would save my unpack and pack.
I want to comment on this, but I can't... it would be off-topic. When will
the perl6-language list be created?
OK, now I will comment on it...
The pack/unpack has to happen at sometime. Perhaps what would work would
be to create a module or core type that would remember its pack
format. Ideally, when used in a scalar context, it would look like its
packed representation; when in a hash context, like its unpacked
representation. Something like:
# game message data consists of objectID; position x,y,z; orientation
# ux,uy,uz (up direction) and nx,ny,nz (nose direction), velocity
# vx,vy,vz, and acceleration ax,ay,az all as 32-bit integers in network
# byte order (packet size: 512B). Object ID of 0 means update complete.
#
# $packet pre-defined to have a pack format of "NNNNNNNNNNNNNNNN"
{
sysread SERVER, $packet, 512;
last if $packet{'objectID'} == 0;
$remoteobject[$packet{'objectID'}] = { %packet };
}
Is that sort of what you'd like?