The Right Tool for The Right Job (was Re: Grouping perl foreach values)
Alex Satrapa
grail at goldweb.com.au
Wed Jul 10 00:49:00 EST 2002
On Tuesday, July 9, 2002, at 05:28 , Michael Still wrote:
> I think this sums it up. I wasn't too interested in finding the spare
> brain capacity to complicate things this was. The data is a triple of
> (return type, function name, arguement list).
>
> Is there are trivial was of implementing a structure which has these
> three
> elements?
%item1 = ('type' => "int", 'name' => "foo", 'args' => ["blah", "blag",
"blurgle"]);
%item2 = ('type' => "char", 'name' => "bar", 'args' => ["floogle"]);
@items = (\%item1, \%item2);
OR
%item1 = ('type' => "int", 'args' => ["blah", "blag", "blurgle"]);
%item2 = ('type' => "char", 'args' => ["floogle"]);
%items = ('foo' => \%item1, 'bar' => \%item2);
OR EVEN (this data structure is not the same implementation)
$items = {};
$items->{'foo'}->{'type'} = "int";
$items->{'foo'}->{'args'} = ["blah", "blag", "blurgle"];
$items->{'bar'}->{'type'} = "char";
$items->{'bar'}->{'args'} = "floogle";
Of course, if your arguments list needs types, you get even more
expressive with things like
$item =
{
'type' => "int",
'name' => "foo",
'args' => {
"blah" => "int",
"blag" => "void *",
"blurgle" => "char **"
}
};
To me, this is a simple data structure - given the complexity of the
data to be modelled. To a dyed-in-the-wool C programmer, it's an unholy
mess of quotes and curly braces in the wrong places. I cannot think of
a simpler (more easily understood) data structure that captures the
semantics of the indicated problem domain.
Alex
"Programming is like sex: one mistake and you have to support it for the
rest of your life." -Michael Sinz
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 225 bytes
Desc: not available
Url : http://lists.samba.org/archive/linux/attachments/20020710/6589273a/attachment.bin
More information about the linux
mailing list