diff options
author | Guido van Rossum <guido@python.org> | 1992-03-02 16:20:32 (GMT) |
---|---|---|
committer | Guido van Rossum <guido@python.org> | 1992-03-02 16:20:32 (GMT) |
commit | 2ba9f30489326dcaea8e0c1fdc395805fb618c97 (patch) | |
tree | d360c7225310833094e7dc40be5289f9d95ea3e9 /Tools/scripts/dutree.doc | |
parent | becdad3d5e512b08e0dd5994ac7c7ec3e6f84ebc (diff) | |
download | cpython-2ba9f30489326dcaea8e0c1fdc395805fb618c97.zip cpython-2ba9f30489326dcaea8e0c1fdc395805fb618c97.tar.gz cpython-2ba9f30489326dcaea8e0c1fdc395805fb618c97.tar.bz2 |
Initial revision
Diffstat (limited to 'Tools/scripts/dutree.doc')
-rw-r--r-- | Tools/scripts/dutree.doc | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/Tools/scripts/dutree.doc b/Tools/scripts/dutree.doc new file mode 100644 index 0000000..2a09426 --- /dev/null +++ b/Tools/scripts/dutree.doc @@ -0,0 +1,54 @@ +Path: cwi.nl!sun4nl!mcsun!uunet!cs.utexas.edu!convex!usenet +From: tchrist@convex.COM (Tom Christiansen) +Newsgroups: comp.lang.perl +Subject: Re: The problems of Perl (Re: Question (silly?)) +Message-ID: <1992Jan17.053115.4220@convex.com> +Date: 17 Jan 92 05:31:15 GMT +References: <17458@ector.cs.purdue.edu> <1992Jan16.165347.25583@cherokee.uswest.com> <=#Hues+4@cs.psu.edu> +Sender: usenet@convex.com (news access account) +Reply-To: tchrist@convex.COM (Tom Christiansen) +Organization: CONVEX Realtime Development, Colorado Springs, CO +Lines: 83 +Nntp-Posting-Host: pixel.convex.com + +From the keyboard of flee@cs.psu.edu (Felix Lee): +:And Perl is definitely awkward with data types. I haven't yet found a +:pleasant way of shoving non-trivial data types into Perl's grammar. + +Yes, it's pretty aweful at that, alright. Sometimes I write perl programs +that need them, and sometimes it just takes a little creativity. But +sometimes it's not worth it. I actually wrote a C program the other day +(gasp) because I didn't want to deal with a game matrix with six links per node. + +:Here's a very simple problem that's tricky to express in Perl: process +:the output of "du" to produce output that's indented to reflect the +:tree structure, and with each subtree sorted by size. Something like: +: 434 /etc +: | 344 . +: | 50 install +: | 35 uucp +: | 3 nserve +: | | 2 . +: | | 1 auth.info +: | 1 sm +: | 1 sm.bak + +At first I thought I could just keep one local list around +at once, but this seems inherently recursive. Which means +I need an real recursive data structure. Maybe you could +do it with one of the %assoc arrays Larry uses in the begat +programs, but I broke down and got dirty. I think the hardest +part was matching Felix's desired output exactly. It's not +blazingly fast: I should probably inline the &childof routine, +but it *was* faster to write than I could have written the +equivalent C program. + + +--tom + +-- +"GUIs normally make it simple to accomplish simple actions and impossible +to accomplish complex actions." --Doug Gwyn (22/Jun/91 in comp.unix.wizards) + + Tom Christiansen tchrist@convex.com convex!tchrist + |