| Guido van Rossum | 2ba9f30 | 1992-03-02 16:20:32 +0000 | [diff] [blame] | 1 | Path: cwi.nl!sun4nl!mcsun!uunet!cs.utexas.edu!convex!usenet | 
 | 2 | From: tchrist@convex.COM (Tom Christiansen) | 
 | 3 | Newsgroups: comp.lang.perl | 
 | 4 | Subject: Re: The problems of Perl (Re: Question (silly?)) | 
 | 5 | Message-ID: <1992Jan17.053115.4220@convex.com> | 
 | 6 | Date: 17 Jan 92 05:31:15 GMT | 
 | 7 | References: <17458@ector.cs.purdue.edu> <1992Jan16.165347.25583@cherokee.uswest.com> <=#Hues+4@cs.psu.edu> | 
 | 8 | Sender: usenet@convex.com (news access account) | 
 | 9 | Reply-To: tchrist@convex.COM (Tom Christiansen) | 
 | 10 | Organization: CONVEX Realtime Development, Colorado Springs, CO | 
 | 11 | Lines: 83 | 
 | 12 | Nntp-Posting-Host: pixel.convex.com | 
 | 13 |  | 
 | 14 | From the keyboard of flee@cs.psu.edu (Felix Lee): | 
 | 15 | :And Perl is definitely awkward with data types.  I haven't yet found a | 
 | 16 | :pleasant way of shoving non-trivial data types into Perl's grammar. | 
 | 17 |  | 
 | 18 | Yes, it's pretty aweful at that, alright.  Sometimes I write perl programs | 
 | 19 | that need them, and sometimes it just takes a little creativity.  But | 
 | 20 | sometimes it's not worth it.  I actually wrote a C program the other day | 
 | 21 | (gasp) because I didn't want to deal with a game matrix with six links per node. | 
 | 22 |  | 
 | 23 | :Here's a very simple problem that's tricky to express in Perl: process | 
 | 24 | :the output of "du" to produce output that's indented to reflect the | 
 | 25 | :tree structure, and with each subtree sorted by size.  Something like: | 
 | 26 | :    434 /etc | 
 | 27 | :      |     344 . | 
 | 28 | :      |      50 install | 
 | 29 | :      |      35 uucp | 
 | 30 | :      |       3 nserve | 
 | 31 | :      |       |       2 . | 
 | 32 | :      |       |       1 auth.info | 
 | 33 | :      |       1 sm | 
 | 34 | :      |       1 sm.bak | 
 | 35 |  | 
 | 36 | At first I thought I could just keep one local list around | 
 | 37 | at once, but this seems inherently recursive.  Which means  | 
 | 38 | I need an real recursive data structure.  Maybe you could | 
 | 39 | do it with one of the %assoc arrays Larry uses in the begat | 
 | 40 | programs, but I broke down and got dirty.  I think the hardest | 
 | 41 | part was matching Felix's desired output exactly.  It's not  | 
 | 42 | blazingly fast: I should probably inline the &childof routine, | 
 | 43 | but it *was* faster to write than I could have written the  | 
 | 44 | equivalent C program. | 
 | 45 |  | 
 | 46 |  | 
 | 47 | --tom | 
 | 48 |  | 
 | 49 | -- | 
 | 50 | "GUIs normally make it simple to accomplish simple actions and impossible | 
 | 51 | to accomplish complex actions."   --Doug Gwyn  (22/Jun/91 in comp.unix.wizards) | 
 | 52 |  | 
 | 53 |      Tom Christiansen           tchrist@convex.com      convex!tchrist | 
 | 54 |  |