Home | History | Annotate | Download | only in scripts
      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