Date: Tue, 23 Jul 2002 02:40:03 +0100 (BST) From: Mark Valentine <mark@thuvia.demon.co.uk> To: "Jordan K. Hubbard" <jkh@queasyweasel.com>, Andrew Reilly <areilly@bigpond.net.au> Cc: jos@catnook.com, freebsd-arch@FreeBSD.ORG Subject: Re: Package system flaws? Message-ID: <200207230140.g6N1e3ZC034104@dotar.thuvia.org> In-Reply-To: <71AEEE0E-9DD3-11D6-A01D-000393038CC8@queasyweasel.com>
next in thread | previous in thread | raw e-mail | index | archive | help
> From: "Jordan K. Hubbard" <jkh@queasyweasel.com> > Date: Mon 22 Jul, 2002 > Subject: Re: Package system flaws? > sh(1) is already notorious for its weak > variable handling (no associative arrays), But hey, it has "eval"... ;-) main() { array_init colour array_set colour apple red array_set colour pear green for_each colour c 'echo "The $c is `array_get colour $c`."' } array_init() { array=$1 eval _keys_$array= } array_set() { array=$1 key=$2 value=$3 eval _elements_${array}_${key}="$value" eval _keys_${array}=\"\$_keys_${array} $key\" } array_get() { array=$1 key=$2 eval value=\$_elements_${array}_${key} echo "$value" } for_each() { array=$1 variable=$2 procedure=$3 eval for key in \$_keys_${array}\; do \{ $variable=\$key\; $procedure\; \}\; done } main Almost as readable as Tcl, I'd say. And as for Perl... Cheers, Mark. -- Mark Valentine, Thuvia Labs <mark@thuvia.co.uk> <http://www.thuvia.co.uk> "Tigers will do ANYTHING for a tuna fish sandwich." Mark Valentine uses "We're kind of stupid that way." *munch* *munch* and endorses FreeBSD -- <http://www.calvinandhobbes.com> <http://www.freebsd.org> To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-arch" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200207230140.g6N1e3ZC034104>