style of functions with complex arguments
From: Robin Sheat (robin_at_kallisti.net.nz)
Date: 01/30/04
- Next message: mkarlow: "Re: Perl regular expression"
- Previous message: R. Joseph Newton: "Re: print outbut being buffered..."
- Next in thread: Wiggins D Anconia: "Re: style of functions with complex arguments"
- Maybe reply: Wiggins D Anconia: "Re: style of functions with complex arguments"
- Reply: Jeff 'Japhy' Pinyan: "Re: style of functions with complex arguments"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Date: Fri, 30 Jan 2004 16:36:57 +1300 To: beginners@perl.org
I have a function that takes a fairly complex set of arguments, and am
wondering if there is a better way of doing this than the way I have
done. A call to the function, as I have it, looks like:
$network->potentiateWeights('network',1,(0,0,0,
1,2,3,
3,2,2));
where the list at the end is actually a set of 3 triples. To make it
clearer, the function turns those parameters into the following XML
(which is pretty much its job):
<PotentiateWeights change="1" net="network">
<Weight src="0" dest="0" layer="0" />
<Weight src="1" dest="2" layer="3" />
<Weight src="3" dest="2" layer="2" />
</PotentiateWeights>
The arguments are processed using:
sub potentiateWeights {
my $self = shift; # for the OO-ness
my $net = shift;
my $delta = shift;
my (@src, @dest, @layer);
while (@_) {
push @src, shift;
push @dest, shift;
push @layer, shift;
}
Now, this works quite well, but doesn't seem all that right. I'd like to
know how someone who had been using the language more than I would
handle this situation. In particular, there is no way (excluding runtime
checking) to ensure that there are the appropriate number of triples in
the list.
Thoughts?
cheers,
-- Robin <robin@kallisti.net.nz> JabberID: <eythian@jabber.org> Hostes alienigeni me abduxerunt. Qui annus est? PGP Key 0x776DB663 Fingerprint=DD10 5C62 1E29 A385 9866 0853 CD38 E07A 776D B663
- application/pgp-signature attachment: stored
- Next message: mkarlow: "Re: Perl regular expression"
- Previous message: R. Joseph Newton: "Re: print outbut being buffered..."
- Next in thread: Wiggins D Anconia: "Re: style of functions with complex arguments"
- Maybe reply: Wiggins D Anconia: "Re: style of functions with complex arguments"
- Reply: Jeff 'Japhy' Pinyan: "Re: style of functions with complex arguments"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]