[13090] in Perl-Users-Digest

home help back first fref pref prev next nref lref last post

Perl-Users Digest, Issue: 500 Volume: 9

daemon@ATHENA.MIT.EDU (Perl-Users Digest)
Fri Aug 13 10:07:11 1999

Date: Fri, 13 Aug 1999 07:05:08 -0700 (PDT)
From: Perl-Users Digest <Perl-Users-Request@ruby.OCE.ORST.EDU>
To: Perl-Users@ruby.OCE.ORST.EDU (Perl-Users Digest)

Perl-Users Digest           Fri, 13 Aug 1999     Volume: 9 Number: 500

Today's topics:
    Re: array and file processing (Michel Dalle)
        DBI-ODBC-Problem: Binding parameters to SELECT <goesmann@do.isst.fhg.de>
    Re: DBI-ODBC-Problem: Binding parameters to SELECT <rhrh@hotmail.com>
    Re: dot is too precious to be only for string concatena <tchrist@mox.perl.com>
    Re: ftp changed files in a directory tree? (I R A Darth Aggie)
    Re: HELP, I need a script. (Michel Dalle)
    Re: Looking for a solution to the problem localtime and (I R A Darth Aggie)
        Memory Leak with Sockets <chirotani@beweb.fr>
    Re: Perl sort question/help <Jonathan_Epstein@nih.gov>
    Re: Perl sort question/help (Steve Linberg)
    Re: Perl sort question/help (Gary O'Keefe)
    Re: pricing a perl job jboes@qtm.net
        problem with ping() in perl <hendrik@doora.ee>
    Re: problem with ping() in perl <hendrik@doora.ee>
        Q: perl modules: @INC, lib, loading (Kees Goossens)
    Re: suggestions for CRAP <jeffp@crusoe.net>
    Re: Which group is appropriate? <elaine@chaos.wustl.edu>
    Re: Why use Perl when we've got Python?! <I.Clarke@strs.co.uk>
    Re: Why use Perl when we've got Python?! (Greg Andrews)
    Re: Why use Perl when we've got Python?! <tchrist@mox.perl.com>
        Digest Administrivia (Last modified: 1 Jul 99) (Perl-Users-Digest Admin)

----------------------------------------------------------------------

Date: Fri, 13 Aug 1999 13:04:45 GMT
From: michel.dalle@usa.net (Michel Dalle)
Subject: Re: array and file processing
Message-Id: <7p159j$h1j$1@news.mch.sbs.de>

In article <7outfv$c44$1@nnrp1.deja.com>, Teacher Guy <habfan2@my-deja.com> 
wrote:
[order of reply changed]
>> Have a look at perllol and perldsc for more information on
>> how to build such structures... There are some nice examples.
>
>I presume perllol is part of CPAN??

No, it's part of the standard documentation that comes with Perl.
Normally, if you type 'perldoc perllol', you should see the 'perllol'
document.

Or if you use the ActiveState distribution, you can also find it from
the "Online Documentation" under "ActivePerl" in your Start Menu.
You'll find perllol as part of the "Core Perl Docs".

Same thing for 'perldoc perldsc', etc.

>> What do you mean by "without screwing up order of other fields" ?
>
>If I sort on a field do all the other fields of record sort in sync?

Yes, of course. That's the idea of keeping some data structure...

>MY DATA IS AS FOLLOWS:
>
>stud1|4|10|course1
[snip]
>Thus, $testave = $score/$tottest
>
>then I need the $testave to serve as index to sort all incoming data.

OK, so calculate the average while you're reading each line (see below),
or do it when you're sorting (but that's a bit more complex).

>> And can the same student appear several times, e.g. for several
>courses ?
>
>Yes, a future consideration for sure.
>
>> And should the average be the average of the ten top scores, or the
>> average of all courses followed by the top 10 students ?
>
>Top 10 average test (percent) results for all incoming data.

You'll have to decide now whether you want just the top 10 scores, or the 
10 students with the top scores, or the 10 students with the highest average
scores, or ... Your data structure may be totally different if this is a 
requirement.

>Thank you very much for the help and I'd appreciate any enlightenment
>that you can offer.

First, have a look at the two documents above. Then think hard about
exactly what you want to calculate, sort, print, save etc.

Here is one way to get the top 10 students with their respective
(sorted) scores : (watch out for line wrapping in the newsreader)
But remember, there's more than one way to do it :-)

#!/usr/local/bin/perl -w
use strict;
my(%hash,%topscore);
while (<DATA>) {
        chomp;
        my ($student,$score,$tottest,$course) = split(/\|/);
# calculate percentage (and show with 1 digit precision)
        my $percent = sprintf("%.1f",$score/$tottest*100);
        $hash{$student}{$course} = $percent;
}
#
# get the top score of each student
#
foreach my $stud (keys %hash) {
        $topscore{$stud} = (sort {$b <=> $a} values %{$hash{$stud}})[0];
}
#
# sort the students by top score (top 10)
#
my $maxidx = keys %topscore;
$maxidx = $maxidx > 10 ? 9 : $maxidx - 1;
foreach my $stud ((sort {$topscore{$b} <=> $topscore{$a}} keys %topscore)[0 .. 
$maxidx]) {
        print "$stud --> $topscore{$stud}\n";
        foreach my $course (sort {$hash{$stud}{$b} <=> $hash{$stud}{$a}} keys 
%{$hash{$stud}}) {
                print "\t$course : $hash{$stud}{$course}\n";
        }
}
exit;
__DATA__
stud1|4|10|course1
stud1|20|60|course2
stud1|50|80|course3
stud2|90|120|course1
stud2|8|10|course2
stud2|7|10|course3
stud3|85|180|course1
stud3|70|110|course2
stud3|62|80|course3
stud4|32|35|course1
stud4|6|15|course2
stud4|5|5|course3

This uses a hash of hashes for the input data, and a simple hash for the
top score per student. Notice that this is very much oriented towards
using 'student' as primary key. If you'll also need to loop over the
different courses and get the top students per course etc., you may
want to use a more 'neutral' data structure like an array of arrays.

But this is probablly getting way beyond your assignment anyway :-)

Michel.


------------------------------

Date: Fri, 13 Aug 1999 15:12:16 +0200
From: Thomas Goesmann <goesmann@do.isst.fhg.de>
Subject: DBI-ODBC-Problem: Binding parameters to SELECT
Message-Id: <37B419B0.8E8C93DE@do.isst.fhg.de>

Hi,

we have the following problem with binding parameters in the WHERE
clause of a SELECT statement (using DBI and ODBC).

The following code produces errors (and obviously we don't know why).

$sth = $dbh->prepare(
	q  {
       		SELECT * 
	 	FROM Process
	        WHERE ProcessID = ?
	    });	    
    
$rc = $sth->bind_param(1, "$ProcessID%", {TYPE => SQL_INTEGER});
$rc = $sth->execute();


If we replace "=" with "like" (WHERE ProcessID like ?) everything works
fine. How do we get it running with "=" ?

Please help. Thank you very much.

Regards,

Thomas Goesmann


________________________________________________________________
Dipl.-Inf.                          Fraunhofer-Institut fuer 
Thomas Goesmann                     Software- und Systemtechnik
Tel  : ++49 +231 9700 - 743         Joseph-v.-Fraunhofer-Str. 20
Fax  : ++49 +231 9700 - 798         Postfach 52 01 30
eMail: goesmann@do.isst.fhg.de      D-44227 Dortmund
WWW  : http://www.do.isst.fhg.de/mitarbeiter/Thomas.Goesmann/


------------------------------

Date: Fri, 13 Aug 1999 14:34:05 +0100
From: Richard H <rhrh@hotmail.com>
Subject: Re: DBI-ODBC-Problem: Binding parameters to SELECT
Message-Id: <37B41ECD.93905BF4@hotmail.com>

Thomas Goesmann wrote:
> 
> Hi,
> 
> we have the following problem with binding parameters in the WHERE
> clause of a SELECT statement (using DBI and ODBC).
> 
> The following code produces errors (and obviously we don't know why).
> 
> $sth = $dbh->prepare(
>         q  {
>                 SELECT *
>                 FROM Process
>                 WHERE ProcessID = ?
>             });
> 
> $rc = $sth->bind_param(1, "$ProcessID%", {TYPE => SQL_INTEGER});
> $rc = $sth->execute();
> 
> If we replace "=" with "like" (WHERE ProcessID like ?) everything works
> fine. How do we get it running with "=" ?
> 

If you're going to have % at the end of ProcessID you will have to use
LIKE won't you??, that is a feature of SQL.
I don't believe you can use % at the end of an equals = unless the % is
a literal.

Richard H


------------------------------

Date: 13 Aug 1999 07:13:50 -0700
From: Tom Christiansen <tchrist@mox.perl.com>
Subject: Re: dot is too precious to be only for string concatenation
Message-Id: <37b41a0e@cs.colorado.edu>

     [courtesy cc of this posting mailed to cited author]

In comp.lang.perl.misc, 
    "John Lin" <johnlin@chttl.com.tw> writes:
:1. Grab the dot operator so that it won't be treated as string
:concatenation.

Yes.  It's called operator overloading, and is applicable to 
objects only, not unblessed hashes.

:2. Control the associativity and precedence in a module.

No.  You take what Perl gives you, just as in C++'s operator
overloading.

:3. Tell the compiler to treat $john.name as $john->{name} at compile time.

No.  The compiler?  That doesn't make much sense.  You don't know what
is going to be in john.  How do you know it will be the right kind
of object?  And why are you touching the hash?  Get your hands off
the object and call its method.

    $john->name()

:4. Generate error messages for misuse at compile time.

No.  That's impossible.  Again, Perl is dynamically typed.
You cannot guarantee that $john will contain an object
that provides a name() method.

Word to the wise: program in Perl seriously and constantly for a couple
of years before you even begin to start to consider thinking about
dicking around with the syntax.  And remember that almost all sweeping
syntactic changes are inadmissible.  You're twelve years too late.
Broad syntactic change should happen when one designs the language,
not a dozen years later.  In short, learn your new country before
trying to change it into the old one.

--tom
-- 
Unix is defined by whatever is running on Dennis Ritchie's machine.


------------------------------

Date: 13 Aug 1999 13:32:43 GMT
From: fl_aggie@thepentagon.com (I R A Darth Aggie)
Subject: Re: ftp changed files in a directory tree?
Message-Id: <slrn7r87nt.20l.fl_aggie@thepentagon.com>

On 13 Aug 1999 08:44:13 -0400, Donovan Rebbechi <elflord@news.newsguy.com>, in
<slrn7r84os.a6f.elflord@panix3.panix.com> wrote:

+ If you are on windows, you might still be able to download a find
+ utility from somewhere.

You mean like File::Find?

+ Otherwise, you could try using File::Find to get a list of files.

Don't forget stat()!

James

-- 
Consulting Minister for Consultants, DNRC
The Bill of Rights is paid in Responsibilities - Jean McGuire
To cure your perl CGI problems, please look at:
<url:http://www.perl.com/CPAN/doc/FAQs/cgi/idiots-guide.html>


------------------------------

Date: Fri, 13 Aug 1999 13:31:41 GMT
From: michel.dalle@usa.net (Michel Dalle)
Subject: Re: HELP, I need a script.
Message-Id: <7p16s3$i2q$1@news.mch.sbs.de>

In article <7p0m77$ipe$1@nnrp1.deja.com>, dodli@my-deja.com wrote:
>Hello, I am looking for a free perl script that
>allows a user to make text updates to an existing
>portion of an html page.
>Thanks

Well, unless you give us more details, this code snippet may do what
you want (or it may not) :

open(HTML1,"<myfile.html") || die "sorry, no go for input : $!";
open(HTML2,">yourfile.html") || die "sorry, no go for output : $!";
while (<HTML1>) {
        if (/portion/) {
                print STDOUT $_,"Your update ?\n";
                $newtext = <STDIN>;
                print HTML2 $newtext;
        }
        else {
                print HTML2;
        }
}
close(HTML1);
close(HTML2);

>Sent via Deja.com http://www.deja.com/
>Share what you know. Learn what you don't.

Have you searched at Deja.com yet ? Or maybe
the CGI Resource Index ?

Michel.


------------------------------

Date: 13 Aug 1999 13:43:22 GMT
From: fl_aggie@thepentagon.com (I R A Darth Aggie)
Subject: Re: Looking for a solution to the problem localtime and the century mark.
Message-Id: <slrn7r88bs.20l.fl_aggie@thepentagon.com>

On Thu, 12 Aug 1999 11:32:49 -0400, Jack Alexander
<Jack.Alexander@digital.com>, in <7ouof5$51u$1@nntpd.lkg.dec.com>
wrote:

+     I use Perl 5.0 42 on Windows NT and UNIX. I'm looking for a solution to
+ the problem of localtime only returning a year value (99) and not a century
+ value (19 -or- 20).

Dogbert's Tech Support

I think I know what your problem is.

Take all the parts and manuals and place them into neat piles. 

Now stand on your chair so you can see over your cubicle wall, and
shout "Does anyone know how to read a manual?"

The perl documentation on localtime:

            Also, `$year' is the number of years since 1900, that 
            is, `$year' is `123' in year 2023, and *not* simply 
            the last two digits of the year. If you assume it is, 
            then you create non-Y2K-compliant programs--and you 
            wouldn't want to do that, would you?

Bad programmer, no doughnut. If worse came to worse, you could have
just 'man localtime' and gotten the answer. Or, alternatively:

perlfaq4: Does Perl have a year 2000 problem?  Is Perl Y2K compliant?

Ok, now that you've seen documentation on this from perl, what do you
think is the correct way to solve your dilema??

+ UNIX/NT Software Development Environments

Oh, this gives me great confidence.

James

-- 
Consulting Minister for Consultants, DNRC
The Bill of Rights is paid in Responsibilities - Jean McGuire
To cure your perl CGI problems, please look at:
<url:http://www.perl.com/CPAN/doc/FAQs/cgi/idiots-guide.html>


------------------------------

Date: Fri, 13 Aug 1999 15:49:57 +0200
From: "Christophe Hirotani" <chirotani@beweb.fr>
Subject: Memory Leak with Sockets
Message-Id: <7p17qc$2v07$1@buggy.easynet.fr>

    Hi there !

I have a little client-server routine on Linux, where the client creates,
every two seconds, a socket to send a message to the server, and then closes
it.
It works rather well, though there is this memory leak : imperceptibly (but
surely), the client process keeps more and more memory...

Does someone have a suggestion, please ??
Thanx a lot !

    Chris.

here's the source :

----------------------------------------------------------------------------
-
#!/usr/bin/perl -w
use strict;
use IO::Socket;

my ($host, $port, $line);

unless (@ARGV == 2) { die "use : $0 host port" }
($host, $port) = @ARGV;

while (1) {
    &connectServer;
    sleep(2);
}

sub connectServer {
    my ($handle);

    $handle = IO::Socket::INET->new(Proto     => "tcp",
                                    PeerAddr  => $host,
                                    PeerPort  => $port)
           or die "can't connect to port $port on $host: $!";

    $handle->autoflush(1);
    print STDERR "[Connected to $host:$port]\n";

 $handle->close();
 print "End process... waitin'...\n\n";
}
----------------------------------------------------------------------------
-




------------------------------

Date: Fri, 13 Aug 1999 09:19:04 -0500
From: Jonathan Epstein <Jonathan_Epstein@nih.gov>
To: Jeff Miller <jeffm641@ibm.net>
Subject: Re: Perl sort question/help
Message-Id: <37B42957.A8722970@nih.gov>

Jeff,

It is matching a leading number followed by zero or more whitespace
characters followed by one or more non-whitespace characters.

Thus, your $item is really:
   :1999:ford:taurus:12995
and it is just your good fortune that this sorts correctly.

Since your fields are colon-delimited, "split" would be more useful than the
substitution command in the sample code.

E.g.
  @fields = split/:/;
OR
  ($numfield1,$date,$make,$model,$numfield2) = split/:/;

Buy, e.g., the Camel book, and read chapter two.

Good luck,

- Jonathan



Jeff Miller wrote:

> I have a sort question/help request - I have read the FAQ and all its
> pointers, but some of the sort information is just not clicking (HUGE
> abuse opening). I want to sort  a dataset on different fields, and have
> been able to sort on the second field, but don't completly understand
> why it works, and how to modify to sort on different fields. Sample line
> of dataset to be sorted below, each line is similar structure
> 2873652:1999:ford:taurus:12995
> Just to clarify, I would only want to sort on one field at a time. Below
> is the Perl that sorts on the second (Date) field...
>   Dataset "jfilein" is opened above...
> @linep = <jfilein>;
>    @idx = ();
>     for (@linep) {
>         ($item) = /\d+\s*(\S+)/;
>         push @idx, uc($item);
>     }
>     @sorted = @linep[ sort { $idx[$a] cmp $idx[$b] } 0 .. $#idx ];
>
>        foreach $line (@sorted) {
>        @bdat = split (/:/, $line);         # Splits at :(colon)
> Printing information below....
>
> This should look familure as some was cut and pasted from FAQ and
> Docs...My biggest question is what exactly is the ($item) =
> /\d+\s*(\S+)/;   doing. If I understood this I believe that I may be
> able to modify this to do the sorting of other fields (then again, maybe
> not).
> Thanks, Jeff Miller



------------------------------

Date: Fri, 13 Aug 1999 13:23:13 GMT
From: slinberg@crocker.com (Steve Linberg)
Subject: Re: Perl sort question/help
Message-Id: <slinberg-1308990923150001@cc11620-a.lwmrn1.pa.home.com>

In article <37B41110.89161E68@ibm.net>, Jeff Miller <jeffm641@ibm.net> wrote:

> My biggest question is what exactly is the ($item) =
> /\d+\s*(\S+)/;   doing. If I understood this I believe that I may be
> able to modify this to do the sorting of other fields (then again, maybe
> not).

Why not read perlre, or the regular expressions section of the Camel? 
Seriously, that regex is very simple.  If you're having trouble with it,
you should read through the standard documentation that came with your
Perl system.


------------------------------

Date: Fri, 13 Aug 1999 13:33:31 GMT
From: gary@onegoodidea.com (Gary O'Keefe)
Subject: Re: Perl sort question/help
Message-Id: <37b41814.15517676@news.hydro.co.uk>

A keyboard was whacked upside Jeff Miller's head and out came:

[ Code snipped ]

>This should look familure as some was cut and pasted from FAQ and
>Docs...My biggest question is what exactly is the ($item) =
>/\d+\s*(\S+)/;   doing. 

\d+ - matches 1 or more digits [0-9] - 
\s* - matches 0 or more whitespace characters like the space
character, tabs, newlines, etc.
\S+ - match 1 or more non-whitespace characters

The patterns matching subexpressions in parentheses, like (\S+), are
returned as a list by the match operator. So, from your example, with
the input pattern 

2873652:1999:ford:taurus:12995

\d+ matches 2873652
\s* matches nothing
\S+ matches :1999:ford:taurus:12995

and the match operator returns the array (':1999:ford:taurus:12995'),
and the only element of this array is assigned to the variable in the
only element of the array on the LHS, $item.

I'll not bother telling you what FAQs to read, as you say you've
already read them. Read them again, though.

HTH

Gary
--
Gary O'Keefe
gary@onegoodidea.com

You know the score - my current employer has nothing to do with what I post


------------------------------

Date: Fri, 13 Aug 1999 13:27:35 GMT
From: jboes@qtm.net
Subject: Re: pricing a perl job
Message-Id: <7p16g0$sr2$1@nnrp1.deja.com>

In a perhaps vain attempt to raise the signal-to-noise ratio in this
thread, let me just put this URL in front of those interested in rate
surveys:

http://www.realrates.com/

One must take this with a grain of salt, it's essentially raw
statistics without any attempt to filter out the chaff.


Sent via Deja.com http://www.deja.com/
Share what you know. Learn what you don't.


------------------------------

Date: Fri, 13 Aug 1999 16:29:27 +0300
From: "Hendrik N6ulik" <hendrik@doora.ee>
Subject: problem with ping() in perl
Message-Id: <7p16vr$e8m15@kaie.va.ttu.ee>

The following code might be identify if other machine responds
over tcp/ip. But something is wrong because ping alwais
returns 0. Why? I have no idea. maybe somebody would help me?

Code is here:

#!/usr/bin/perl
use Net::Ping;
$host="192.168.1.1";
$p = Net::Ping->new("tcp");
print $p->ping($host,5);
print "DOESNT PING\n" unless $p->ping($ip,5));

if i ping prom command line it pinging ok


thanks,

hendrik




------------------------------

Date: Fri, 13 Aug 1999 16:32:37 +0300
From: "Hendrik N6ulik" <hendrik@doora.ee>
Subject: Re: problem with ping() in perl
Message-Id: <7p175t$e8r12@kaie.va.ttu.ee>


Hendrik N6ulik wrote in message <7p16vr$e8m15@kaie.va.ttu.ee>...
>The following code might be identify if other machine responds
>over tcp/ip. But something is wrong because ping alwais
>returns 0. Why? I have no idea. maybe somebody would help me?
>
>Code is here:
>
>#!/usr/bin/perl
>use Net::Ping;
>$host="192.168.1.1";
>$p = Net::Ping->new("tcp");
>print $p->ping($host,5);
>print "DOESNT PING\n" unless $p->ping($ip,5));

sorry, following line is right

 print "DOESNT PING\n" unless $p->ping($host,5));

>
>if i ping prom command line it pinging ok
>
>
>thanks,
>
>hendrik
>
>




------------------------------

Date: 13 Aug 1999 13:26:58 GMT
From: kgg@dcs.ed.ac.uk (Kees Goossens)
Subject: Q: perl modules: @INC, lib, loading
Message-Id: <934550817.895748@muck.dcs.ed.ac.uk>

[This message didn't seem to have made it world-wide previously.
My excuses if you see it twice.]

Hello all,

I the course of perl5-ifying and modularising old perl4 software I ran into
some module problems.  As I understood perlmod the IO module should be part
of all (recent, > 5.00?) perl releases.  For some reason it was not
installed locally, so I installed it under my account.  So my first
question is: did I misunderstand the documentation?  Anyway, it took me a
while to figure out that when installing under, say, /me/lang/perl/lib
(using perl Makefile.PL PREFIX=/me/lang/perl) I have to use:

use lib ("/me/lang/perl/lib","/me/lang/perl/lib/PA-RISC1.1/5.003");
use IO:File; # for example

in my scripts. The first path is obvious, but the second makes me wonder.
If I want to write a platform- and version-independent perl script I
wouldn't want to include a hard-wired path like that.  I would have
expected /me/lang/perl/lib/<arch>/<version> to be found automatically.
Undoubtedly I'm mistaken, so could someone explain the rationale of this
organisation of modules?  (If I have overlooked documentation please point
me there.)

/me/lang/perl/lib/<module>.pm
/me/lang/perl/lib/<module>/<function>.pm
/me/lang/perl/lib/<arch>/<version>/auto/<module>/<module>.*

Thanks,
	Kees
-- 
dr. Kees Goossens <Kees.Goossens@philips.com>
Philips Research Laboratories, WLp 5.19                   Phone: +31-40-2742422
Prof. Holstlaan 4, 5656 AA Eindhoven, The Netherlands     Fax:   +31-40-2744639
-- 
Kees Goossens <kgg@dsi.uniroma1.it>       http://www.dcs.ed.ac.uk/staff/kgg/
Dip. di Scienze dell'Informazione, Universita di Roma "La Sapienza", Italy
A sciencia n\~ao trata das cousas que sam somente ymaginarias falsas ou 
ympossiveis: mas das certas e verdadeiras  -- Pedro Nunes, c.1549


------------------------------

Date: Fri, 13 Aug 1999 10:04:09 -0400
From: Jeff Pinyan <jeffp@crusoe.net>
Subject: Re: suggestions for CRAP
Message-Id: <Pine.GSO.4.10.9908130954250.3761-100000@crusoe.crusoe.net>

[posted & mailed]

Look out, it's an not-as-obtuse-as-it-might-seem metaphor, and it's on the
loose....

Which would you rather have:

a) a camcorder you've heard about, and know a lot of people use, but has
less than good tech support, broken parts, obtuse or non-existent
documentation (manual, that is), comes with no warranty, and uses
hand-made, built-from-home materials

b) a camcorder you've not heard about, that people are starting to hear
about, that is guaranteed to work fine, has easy to read documentation, is
assembled using the finest products around, has its team of creators ready
for answering your questions, and is designed to work better than "that
other" camcorder you're thinking about.


If you were an owner of camcorder a, wouldn't you WANT to know why you
shouldn't keep using it?  Wouldn't you WANT to know that when the next
year rolls around, it won't work quite well, and you know you don't know
enough about camcorders to fix it?  Wouldn't you WANT tech support, and
well-thoughtout documentation, in case you're curious how it does this, or
how it does that?

If you were an owner of camcorder b, wouldn't you tell your friends who
use camcorder a about camcorder a's shortcomings?  Wouldn't you tell them
why it will screw up next year?  Wouldn't you tell them to get this better
camcorder that costs the same, and has a much better warranty, and is
going to work no matter what (hammer and 40-foot-drops aside)?


That is why I'm making the web site.  The site is not aimed at making the
program authors embarrassed, but rather at alerting them, and the people
that use their programs, that the programs aren't as good as they could
and should be.


I'll let you get back to driving your Pinto down memory lane.  (Hmm, that
was an "Unsafe at Any Speed" reference.  I learned something in school.)

--
jeff pinyan    japhy@pobox.com  japhy+perl@pobox.com  japhy+crap@pobox.com
japhy's little hole in the (fire) wall:       http://www.pobox.com/~japhy/
japhy's perl supposit^Wrepository:       http://www.pobox.com/~japhy/perl/
The "CRAP" Project:                 http://www.pobox.com/~japhy/perl/crap/
CPAN ID: PINYAN           http://www.perl.com/CPAN/authors/id/P/PI/PINYAN/



------------------------------

Date: Fri, 13 Aug 1999 09:43:41 -0400
From: Elaine -HFB- Ashton <elaine@chaos.wustl.edu>
Subject: Re: Which group is appropriate?
Message-Id: <37B42083.3D6813B5@chaos.wustl.edu>

Michael South wrote:
> I think the most valuable outcome of the creation of
> comp.lang.perl.questions or whatever would be that we would finally see if
> any of the predictions, dire or glowing, play out...

> comp.lang.perl.no.meanies
[....]

comp.lang.perl.take.a.pill
comp.lang.perl.who.says.pms.is.just.for.gurls
comp.lang.perl.im.ok.ur.ok
comp.lang.perl.psychotics.anonymous
comp.lang.perl.pedants.pedants.pedants
comp.lang.perl.die.die.die.die.die
comp.lang.perl.were.scottish.and.we.luv.ewe

:)

e.


------------------------------

Date: Fri, 13 Aug 1999 14:34:13 +0100
From: Ian Clarke <I.Clarke@strs.co.uk>
To: Tom Christiansen <tchrist@mox.perl.com>
Subject: Re: Why use Perl when we've got Python?!
Message-Id: <37B41ED5.958C399A@strs.co.uk>


I was fascinated by your sociological theories on how nationality and
religious background has influenced the design of both Perl and Python -
but...

> It is no wonder that many chafe at servile adherence to rules that someone
> else decided would be good for them.  Being told in a patronizing tone
> that "Father knows best" evokes feelings of resentment and rebellion
> that are entirely understandable.  Eventually, you have to advance
> out of kindergarten and develop your own personal laws and morality.
> The world might be safer if it were filled with robots, but it would be
> rather more dull and disheartening as well.

Do you view conformity to an interface, or a coding style, or a protocol
to be "service adherence"?  If so you must find it difficult or
impossible to work as part of a team.  In some way, good programming is
all about conformity.  Part of the Object Orientated paradigm is about
forcing a programmer to write objects that "conform" to a unified
interface.  In the Linux world, people are talking excitedly about an
open Linux standard, in fact, Linux owes much of its usefulness to the
fact that it conformed to the standards and style set down by Unix.

Conformity is useful in programming, even if frowned upon in fashion, or
musical tastes.  No more so then where a programming language is
concerned, given that a piece of code should be more than just a tool
that does a job, it should be a tool than can be easily understood and
modified by others.  If people stick to sensible conventions (and
Guido's middle-name is "sensible") then it can make the code much easier
for others to understand.

Perl advocates seem to delight in the huge number of ways any task can
be performed (judging from comments in this thread alone), and in the
wonderfully convoluted code that can be produced, but in the real world,
where code must frequently be shared with others, freedom isn't always
such a good thing.

Ian.


------------------------------

Date: 13 Aug 1999 06:45:46 -0700
From: gerg@shell.ncal.verio.com (Greg Andrews)
Subject: Re: Why use Perl when we've got Python?!
Message-Id: <7p17ia$ok9$1@shell1.ncal.verio.com>

Ian Clarke <I.Clarke@NOSPAM.strs.co.uk> writes:
>> This isn't the way to learn, you know.  You'll only get people
>> disagreeing with you, and then you'll disagree back, and you'll
>> never learn anything.  Conflict will not bring understanding.
>
>I agree that conflict won't bring understanding, but I was hoping that
>people familiar with the language could explain what is good about Perl,
>without trying to start a conflict.
>

In an article that appeared just before this one on my site's
news server, you said you employed the language of conflict
(a subject line similar to a flamewar troll) in order to gain
attention.

I'm sorry, but you can't have it both ways.  If you use the same
tactics as those who troll for flame wars, your intentions will
be understood to be the same as theirs.

Didn't you understand this when you selected your subject line?

  -Greg
-- 
:::::::::::::::::::  Greg Andrews  gerg@wco.com  :::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::


------------------------------

Date: 13 Aug 1999 07:54:24 -0700
From: Tom Christiansen <tchrist@mox.perl.com>
Subject: Re: Why use Perl when we've got Python?!
Message-Id: <37b42390@cs.colorado.edu>

     [courtesy cc of this posting mailed to cited author]

In comp.lang.perl.misc, 
    Ian Clarke <I.Clarke@strs.co.uk> writes:
:Do you view conformity to an interface, or a coding style, or a protocol
:to be "service adherence"?  

That would be "servile", and that's not what I'm talking about.

:If so you must find it difficult or
:impossible to work as part of a team.  

I am perfectly capable of calling functions with their proper
arguments, thank you very much.

:In some way, good programming is
:all about conformity.  

Now that's a line of bull I haven't heard before.

:Part of the Object Orientated paradigm is about

I really don't care about OO, thank you very much.

:Perl advocates seem to delight in the huge number of ways any task can
:be performed (judging from comments in this thread alone), 

No, we delight in personal creativity.  I'm sorry that you don't.

:and in the
:wonderfully convoluted code that can be produced, 

More bullshit.  Please stop anytime soon.  Convoluted code
has only one place: as a a convoluted code contest entry. 

Please do not use Perl.  It is wrong for you.  You aren't up to making
choices and possibilities, to accepting the responsibility that comes
with creativiety.  Please return to whatever bondage and discipline
church whence you originally came.  Leave us in peace.

--tom
-- 
 "In headlines today, the dreaded killfile virus spread across the country
  adding aol.com to peoples usenet kill files everywhere.  The programmer of
  the virus still remains anonymous, but has been nominated several times for
  a Nobel peace prize." - Mark Atkinson


------------------------------

Date: 1 Jul 99 21:33:47 GMT (Last modified)
From: Perl-Users-Request@ruby.oce.orst.edu (Perl-Users-Digest Admin) 
Subject: Digest Administrivia (Last modified: 1 Jul 99)
Message-Id: <null>


Administrivia:

The Perl-Users Digest is a retransmission of the USENET newsgroup
comp.lang.perl.misc.  For subscription or unsubscription requests, send
the single line:

	subscribe perl-users
or:
	unsubscribe perl-users

to almanac@ruby.oce.orst.edu.  

To submit articles to comp.lang.perl.misc (and this Digest), send your
article to perl-users@ruby.oce.orst.edu.

To submit articles to comp.lang.perl.announce, send your article to
clpa@perl.com.

To request back copies (available for a week or so), send your request
to almanac@ruby.oce.orst.edu with the command "send perl-users x.y",
where x is the volume number and y is the issue number.

The Meta-FAQ, an article containing information about the FAQ, is
available by requesting "send perl-users meta-faq" from
almanac@ruby.oce.orst.edu. The real FAQ, as it appeared last in the
newsgroup, can be retrieved with the request "send perl-users FAQ" from
almanac@ruby.oce.orst.edu. Due to their sizes, neither the Meta-FAQ nor
the FAQ are included in the digest.

The "mini-FAQ", which is an updated version of the Meta-FAQ, is
available by requesting "send perl-users mini-faq" from
almanac@ruby.oce.orst.edu. 

For other requests pertaining to the digest, send mail to
perl-users-request@ruby.oce.orst.edu. Do not waste your time or mine
sending perl questions to the -request address, I don't have time to
answer them even if I did know the answer.


------------------------------
End of Perl-Users Digest V9 Issue 500
*************************************


home help back first fref pref prev next nref lref last post