• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1Path: cwi.nl!sun4nl!mcsun!uunet!cs.utexas.edu!convex!usenet
2From: tchrist@convex.COM (Tom Christiansen)
3Newsgroups: comp.lang.perl
4Subject: Re: The problems of Perl (Re: Question (silly?))
5Message-ID: <1992Jan17.053115.4220@convex.com>
6Date: 17 Jan 92 05:31:15 GMT
7References: <17458@ector.cs.purdue.edu> <1992Jan16.165347.25583@cherokee.uswest.com> <=#Hues+4@cs.psu.edu>
8Sender: usenet@convex.com (news access account)
9Reply-To: tchrist@convex.COM (Tom Christiansen)
10Organization: CONVEX Realtime Development, Colorado Springs, CO
11Lines: 83
12Nntp-Posting-Host: pixel.convex.com
13
14From 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
18Yes, it's pretty awful at that, alright.  Sometimes I write perl programs
19that need them, and sometimes it just takes a little creativity.  But
20sometimes 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
36At first I thought I could just keep one local list around
37at once, but this seems inherently recursive.  Which means
38I need an real recursive data structure.  Maybe you could
39do it with one of the %assoc arrays Larry uses in the begat
40programs, but I broke down and got dirty.  I think the hardest
41part was matching Felix's desired output exactly.  It's not
42blazingly fast: I should probably inline the &childof routine,
43but it *was* faster to write than I could have written the
44equivalent C program.
45
46
47--tom
48
49--
50"GUIs normally make it simple to accomplish simple actions and impossible
51to accomplish complex actions."   --Doug Gwyn  (22/Jun/91 in comp.unix.wizards)
52
53     Tom Christiansen           tchrist@convex.com      convex!tchrist
54
55