1 Path: cwi.nl!sun4nl!mcsun!uunet!cs.utexas.edu!convex!usenet 2 From: tchrist (a] 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 (a] convex.com> 6 Date: 17 Jan 92 05:31:15 GMT 7 References: <17458 (a] ector.cs.purdue.edu> <1992Jan16.165347.25583 (a] cherokee.uswest.com> <=#Hues+4 (a] cs.psu.edu> 8 Sender: usenet (a] convex.com (news access account) 9 Reply-To: tchrist (a] 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 (a] 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 (a] convex.com convex!tchrist 54 55