[13136] in Perl-Users-Digest

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

Perl-Users Digest, Issue: 546 Volume: 9

daemon@ATHENA.MIT.EDU (Perl-Users Digest)
Sun Aug 15 19:10:44 1999

Date: Sun, 15 Aug 1999 16:10:18 -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           Sun, 15 Aug 1999     Volume: 9 Number: 546

Today's topics:
    Re: Performance difference printing single vs double qu <jeffp@crusoe.net>
    Re: Performance difference printing single vs double qu <uri@sysarch.com>
        perl shipped with RH 6.0 not properly compiled lichtin@bivio.com
        Perl2Exe doesnt find my modules <schmickl@magnet.at>
    Re: Possible Perl Bug or Just Me (Martien Verbruggen)
    Re: problem printing ("html") inlandpac@my-deja.com
    Re: Reading the Online Documentation? (Ed Blackman)
    Re: Things my math teacher forgot to tell me (Abigail)
    Re: Wacky Programming Tales <JamesL@Lugoj.Com>
    Re: Wacky Programming Tales (Abigail)
    Re: Wacky Programming Tales (Aahz Maruch)
    Re: Wacky Programming Tales (Ben Caradoc-Davies)
    Re: Wacky Programming Tales (Ben Caradoc-Davies)
        Which Module for POP3? (Chris)
        Digest Administrivia (Last modified: 1 Jul 99) (Perl-Users-Digest Admin)

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

Date: Sun, 15 Aug 1999 17:12:23 -0400
From: Jeff Pinyan <jeffp@crusoe.net>
Subject: Re: Performance difference printing single vs double quote?
Message-Id: <Pine.GSO.4.10.9908151709590.3761-100000@crusoe.crusoe.net>

[posted & mailed]

On Aug 15, Chi Yu blah blah blah:
> Is there an appreciable performance gain in printing static text using
> single quotes versus standardizing on double quotes for both static and
> dynamic strings?

I would hardly call the following results an "appreciable" difference:

Unless you consider 0.0000002 seconds a "lag". :)

  #!/usr/bin/perl -MBenchmark=timethese
  
  ($his,$s,$n) = ("aaaa","aa","aa);
  open OUT, ">/dev/null";
  
  timethese(50_000, {
    double_str => q{ print OUT "this is in quotes" },
    douvar_str => q{ print OUT "$his $s $n quotes" },
    single_str => q{ print OUT 'this is in quotes' },
    sinvar_str => q{ print OUT '$his $s $n quotes' },
  });

  # Benchmark: timing 50000 iterations of [snip]
  # double_str:  1 wallclock secs ( 0.66 usr +  0.00 sys =  0.66 CPU)
  # douvar_str:  2 wallclock secs ( 1.45 usr +  0.01 sys =  1.46 CPU)
  # single_str:  1 wallclock secs ( 0.64 usr +  0.00 sys =  0.64 CPU)
  # sinvar_str:  1 wallclock secs ( 0.64 usr +  0.01 sys =  0.65 CPU)

--
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: 15 Aug 1999 17:20:23 -0400
From: Uri Guttman <uri@sysarch.com>
Subject: Re: Performance difference printing single vs double quote?
Message-Id: <x7wvuw3fmw.fsf@home.sysarch.com>

>>>>> "CY" == Chi Yu <chi@cybie.com> writes:

  CY> Is there an appreciable performance gain in printing static text using
  CY> single quotes versus standardizing on double quotes for both static and
  CY> dynamic strings?

  CY> print 'This is a static string.';
  CY> print "This is a static string which may require more resources since
  CY> it is parsed.";
  CY> print "This is a dynamic string using variable $variable.";

there is a very minor speed difference (some have quoted %1) which is
negligible.

it is far more important to use the quotes that properly convey the
meaning of what you are doing in the string. single quoted strings ('
and its sibling q{} ) have no interpolation or backslashed char
insertion (\n and friends). double quoted strings (" and its sibling
qq{}) will have interpolation. so if you just need a fixed string
without any interpolation, use single quotes, otherwise use double
quotes.

and remember, there are other quotish contexts including here docs,
regexes and substitute strings, and backticks. in general they are
double quotish (with special exceptions in regexes) but some can have
single quote behavior given the proper syntax.

uri

-- 
Uri Guttman  -----------------  SYStems ARCHitecture and Software Engineering
uri@sysarch.com  ---------------------------  Perl, Internet, UNIX Consulting
Have Perl, Will Travel  -----------------------------  http://www.sysarch.com
The Best Search Engine on the Net -------------  http://www.northernlight.com
"F**king Windows 98", said the general in South Park before shooting Bill.


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

Date: Sun, 15 Aug 1999 14:44:23 +0200
From: lichtin@bivio.com
Subject: perl shipped with RH 6.0 not properly compiled
Message-Id: <37B6B627.B3340728@bivio.com>

After a fresh Redhat 6 installation, the symptom is

% perl -e "open(F,'/usr/bin/perl'); -B F && die"
-T and -B not implemented on filehandles at -e line 1.

It turns out, the Configure script greps for '_IO_fpos_t'
in stdio.h. However, the definition has been moved into libio.h
for whatever reason. After fixing the Configure script and
rebuilding perl, it seems to work as expected:

% perl -e "open(F,'/usr/bin/perl'); -B F && die"
Died at -e line 1.

Has anyone else noticed this? I just couldn't find anything
about this problem in the usual places (deja,redhat,perl).com, etc


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

Date: Sun, 15 Aug 1999 23:19:50 +0200
From: Thomas Schmickl <schmickl@magnet.at>
Subject: Perl2Exe doesnt find my modules
Message-Id: <37B72EF6.B9734606@magnet.at>

I tried the trialversion of perl2exe and noticed that it was unable to find my *.pm files that are kept in subfolders of the folder that contains the *.pl file.

They are included there in the style:
use class::myObj;
use class::mySecObj;
And also some Tk modules are included like:
use Tk;
use Tk::Text;

When I start perl2exe it argues about not finding my own modules and the Tk-ones. It says that I should add perl/bin to my path(I am working with WinNT with AS-Perl 518), which I certainly did. I should say, that when I start my script it works perfectly fine and finds all modules.

So does anybody know what I am doing wrong ?

I have heard that there is another tool like perl2exe. Can anybody tell me, how good it is, and where I can get a trial-version for testing ?

Ciao and thanx, thomas.



----------------------------------------------------
Thomas Schmickl,
Department for zoology
Karl Franzens University Graz, Austria.
----------------------------------------------------
Visit the GPL e:doc-project on http://members.magnet.at/hfbuch/edoc
or mail me at schmick@magnet.at
----------------------------------------------------




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

Date: Sun, 15 Aug 1999 23:00:16 GMT
From: mgjv@comdyn.com.au (Martien Verbruggen)
Subject: Re: Possible Perl Bug or Just Me
Message-Id: <4EHt3.17$Cb2.2200@nsw.nnrp.telstra.net>

In article <37b43f74@news1.us.ibm.net>,
	<stirling@banet.net> writes:
> In the following two scripts the only change is in the single and double
> quotes, however, the one with single quotes doesn't work and the one with
> double quotes does.  I have attached the output of perl -V for my host
> system.  Please let me know if this is a perl bug or a bug on my system or
> my Perl code.

> #!/usr/bin/perl -w
> use strict;
> 
> $orig='sample.txt';
> chmod (0700,$orig);

You're not demonstrating that your scripts actually do not do what you
want them to do. You just give us some code, which CANNOT have
compiled. The 'use strict' line forbids the next code line.

> Here is the output of perl -V:

Is that the same as the output of /usr/bin/perl -V?

[SNIP output]

That is more or less the version of perl I tried that with, as
demonstrated to you in the original thread. I'll do it again for you
here:

# perl -V
Summary of my perl5 (5.0 patchlevel 4 subversion 4) configuration:
  Platform:
    osname=solaris, osvers=2.6, archname=sun4-solaris
    uname='sunos timber 5.6 generic sun4u sparc sunw,ultra-2 '
    hint=recommended, useposix=true, d_sigaction=define
    bincompat3=y useperlio=undef d_sfio=undef
  Compiler:
    cc='cc', optimize='-O', gccversion=
    cppflags='-I/usr/local/include'
    ccflags ='-I/usr/local/include'
    stdchar='unsigned char', d_stdstdio=define, usevfork=false
    voidflags=15, castflags=0, d_casti32=define, d_castneg=define
    intsize=4, alignbytes=8, usemymalloc=y, prototype=define
  Linker and Libraries:
    ld='cc', ldflags =' -L/usr/local/lib'
    libpth=/usr/local/lib /lib /usr/lib /usr/ccs/lib
    libs=-lsocket -lnsl -ldl -lm -lc -lcrypt
    libc=/lib/libc.so, so=so
    useshrplib=false, libperl=libperl.a
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags=' '
    cccdlflags='-Kpic', lddlflags='-G -L/usr/local/lib'


Characteristics of this binary (from libperl): 
  Built under solaris
  Compiled at Feb 18 1998 16:22:32
  @INC:
    /usr/local/lib/perl5/sun4-solaris/5.00404
    /usr/local/lib/perl5
    /usr/local/lib/perl5/site_perl/sun4-solaris
    /usr/local/lib/perl5/site_perl
# ls -l foo
-rwxr-xr-x   1 mgjv     staff        205 Aug 12 16:16 foo*
# perl -w
$o = 'foo'; chmod 0700, $o;
# ls -l foo
-rwx------   1 mgjv     staff        205 Aug 12 16:16 foo*
# perl -w
$o = "foo"; chmod 0755, $o;
# ls -l foo
-rwxr-xr-x   1 mgjv     staff        205 Aug 12 16:16 foo*

Maybe you could repeat that sequence on your machine to see if there
is a difference in the output. If it does indeed behave differently on
your system, maybe then we can start investigating what's wrong.

Now, if you post again, make sure that you post something which is not
as transparently wrong as you posted this time. If you post code, make
sure it actually compiles.
-- 
Martien Verbruggen                  | 
Interactive Media Division          | +++ Out of Cheese Error +++ Reinstall
Commercial Dynamics Pty. Ltd.       | Universe and Reboot +++
NSW, Australia                      | 


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

Date: Sun, 15 Aug 1999 21:55:46 GMT
From: inlandpac@my-deja.com
Subject: Re: problem printing ("html")
Message-Id: <7p7d0u$tof$1@nnrp1.deja.com>


> Please excuse my ignorance

Not a problem.  I would refrain from making that statement in this
forum.  Some people will give you are hard time about that.

You should read further on output.

Also, you need to make sure interpreter line is correct!

It is #!usr/local/bin/perl, not #!usr/bin/perl

Try this:

#!/usr/bin/perl

print "Content-type: text/html\n\n";

print qq~

<html>
<head>
  <title>test</title>
</head>
<body bgcolor=#FFFFFF text=#000000>
  <center>
  <table border=0 width=600 bgcolor=#9C9C9C>
    <tr><th><font size=+2>Test</font></th></tr>   </table>
  <table border=0 width=600 bgcolor=#CFCFCF>
    <TR>
<td>This probably isn't working....</td>
</tr>
  </table>
  </center>
</body>
</html>
~;


Chad.


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


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

Date: Sun, 15 Aug 1999 14:13:45 -0400
From: edgewood+news@pobox.com (Ed Blackman)
Subject: Re: Reading the Online Documentation?
Message-Id: <ZNwt3AJ7KxPe092yn@pobox.com>

ljp <ljp@209.204.251.8> wrote:
>All the *Best* teachers that I knew in school were understanding. I
>never learned anything from the ones that used your ill-thought
>technique, of humiliation and mind torture.
>The best teachers show patience and understanding, and realize that
>the only way to really teach anything, is from a positive side.

Your teachers in school were being paid to teach you.  The gurus here
put a lot of time and effort, FOR FREE, into writing and refining the
documentation and FAQs.  If you have a question not answered there,
it's very likely that you'll get an answer here, again, FOR FREE. 
Because they're putting time and effort into answering questions here
FOR FREE, they quite rightly expect you to do some of the work.  They
expect you to:

1) Reduce the code you're having a problem with to the shortest snippet
(not counting whitespace) that exhibits the problem.

2) State what you expect the code to do, including references to the
documentation.

3) Detail what the code is actually doing.

At least once a week, I *start* to post a question to one of the
language newsgroups.  As my posting history on deja.com shows, I hardly
ever end up posting those questions.  That's because, as I go through
the process I explained above, I realize what my error was, so I don't
have to actually send the post.

If you're unwilling to put in that work, I'm sure you could find
someone who would be willing to have you PAY them to hold your hand
through reading the documentation or debugging your script.

Ed


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

Date: 15 Aug 1999 17:09:06 -0500
From: abigail@delanet.com (Abigail)
Subject: Re: Things my math teacher forgot to tell me
Message-Id: <slrn7reem1.81j.abigail@alexandra.delanet.com>

Anno Siegel (anno4000@lublin.zrz.tu-berlin.de) wrote on MMCLXXV September
MCMXCIII in <URL:news:7p5h1s$v91$1@lublin.zrz.tu-berlin.de>:
?? 
?? For an in-depth treatment of these things I still think Don Knuth,
?? _The Art of Computer Programming_ contains all you want to know,
?? probably all in the first volume.  The only drawback may be that,
?? because of its age, it treats concepts that have been left by the
?? wayside in the meantime (like, for instance, ones complement
?? representation).  You can usually skip the mathematical treatment
?? of things (which is pretty advanced in places) without losing the
?? context (one of the truly admirable properties of the impressive
?? work).  Read the first few chapters, then use the index to jump
?? to things that interest you.

Uhm, Vol I of TAoCP only has 2 chapters...

??                               The book is full of back-references,
?? so you won't get lost that way.  Be prepared to invest some time,
?? it will pay.



Abigail
-- 
sub f{sprintf'%c%s',$_[0],$_[1]}print f(74,f(117,f(115,f(116,f(32,f(97,
f(110,f(111,f(116,f(104,f(0x65,f(114,f(32,f(80,f(101,f(114,f(0x6c,f(32,
f(0x48,f(97,f(99,f(107,f(101,f(114,f(10,q ff)))))))))))))))))))))))))


  -----------== Posted via Newsfeeds.Com, Uncensored Usenet News ==----------
   http://www.newsfeeds.com       The Largest Usenet Servers in the World!
------== Over 73,000 Newsgroups - Including  Dedicated  Binaries Servers ==-----


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

Date: Sun, 15 Aug 1999 14:31:17 -0700
From: James Logajan <JamesL@Lugoj.Com>
Subject: Re: Wacky Programming Tales
Message-Id: <37B731A5.13986DA7@Lugoj.Com>

Kaz Kylheku wrote:
> 
> On 15 Aug 1999 03:14:48 GMT, Ben Caradoc-Davies <bmcd@es.co.nz> wrote:
> >[strange programming]
> >The most confidence uninspiring piece of code I ever had the displeasure to
> >maintain contained something like this (allegedly C++, but mainly it's
> >intersection with C):
> >
> >       i = 0;
> >       while( i < max_index ) {
> >               /* some copying or update (not modifying i) goes here */
> >               i = i + 1;
> >       }
> >
> >This was written by a *very* expensive consultant working for a large
> >multinational accountancy firm.
> 
> So what's wrong with that?
[Nice defense elided.]

Those that think that code is bad have I suspect have never seen bad code.
Anyway, I bet many people missed the really bad part in that code, which is
the placement of the { <Wink>. Note the only approved location for curly
brackets:

i = 0;
while(i < max_index)
{
    /* Blah blah. */
    i = i + 1;
}

(I use Python whenever I can just to get away from these curly bracket wars.
<0.7 wink>)


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

Date: 15 Aug 1999 16:40:06 -0500
From: abigail@delanet.com (Abigail)
Subject: Re: Wacky Programming Tales
Message-Id: <slrn7recvk.81j.abigail@alexandra.delanet.com>

Kaz Kylheku (kaz@ashi.FootPrints.net) wrote on MMCLXXV September MCMXCIII
in <URL:news:slrn7re808.77t.kaz@ashi.FootPrints.net>:
## On 15 Aug 1999 03:14:48 GMT, Ben Caradoc-Davies <bmcd@es.co.nz> wrote:
## >[strange programming]
## >The most confidence uninspiring piece of code I ever had the displeasure to
## >maintain contained something like this (allegedly C++, but mainly it's 
## >intersection with C):
## >
## >	i = 0;
## >	while( i < max_index ) {
## >		/* some copying or update (not modifying i) goes here */
## >		i = i + 1;
## >	}
## >
## >This was written by a *very* expensive consultant working for a large
## >multinational accountancy firm.
## 
## So what's wrong with that? Granted, the for loop construct would have
## been better for the task instead of while, and the expensive consultant shoul
## have seen that. But what about the i = i + 1 increment? It smacks of BASIC, b
## there is nothing wrong with it.  It's not any less efficient than i++ or ++i.


I would still argue we don't know enough about the program to say it's
wrong or bad style. The last line is easily modified to "i = i + 2", or
"i = i * 1.5", or "i = i + a", where a is depending on the rest of the
statements in the block. I would prefer using "i = i + 1" or "i += 1"
if I mean "I add a number to i, which happens to be 1 in this case" over
"i ++", which in my book means, "I am counting" or "it's the next one".
I don't think using 'for (i = 0; i < max_index; i = i + 1) {}' is going
to buy me anything over the while. Except that's less flexible. Thinking
about the next programmer? Gimme a break. A programmer that gets confused
when seeing a while that could be written as a for shouldn't touch the
code anyway.


It's the same with !i and i == 0. With !i, i is acting as a boolean, while
in "i == 0", I am comparing i to a specific value. That the value just
happens to be 0 doesn't warrent a change in syntax.


Abigail
-- 
$" = "/"; split $, => eval join "+" => 1 .. 7;
*{"@_"} = sub  {foreach (sort keys %_) {print "$_ $_{$_} "}};
%{"@_"} = %_ = (Just => another => Perl => Hacker); &{%{%_}};


  -----------== Posted via Newsfeeds.Com, Uncensored Usenet News ==----------
   http://www.newsfeeds.com       The Largest Usenet Servers in the World!
------== Over 73,000 Newsgroups - Including  Dedicated  Binaries Servers ==-----


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

Date: 15 Aug 1999 21:45:57 GMT
From: aahz@netcom.com (Aahz Maruch)
Subject: Re: Wacky Programming Tales
Message-Id: <7p7cel$l7h@dfw-ixnews14.ix.netcom.com>

In article <slrn7re808.77t.kaz@ashi.FootPrints.net>,
Kaz Kylheku <kaz@ashi.FootPrints.net> wrote:
>On 15 Aug 1999 03:14:48 GMT, Ben Caradoc-Davies <bmcd@es.co.nz> wrote:
>>
>>The most confidence uninspiring piece of code I ever had the displeasure to
>>maintain contained something like this (allegedly C++, but mainly it's 
>>intersection with C):
>>
>>	i = 0;
>>	while( i < max_index ) {
>>		/* some copying or update (not modifying i) goes here */
>>		i = i + 1;
>>	}
>>
>>This was written by a *very* expensive consultant working for a large
>>multinational accountancy firm.
>
>So what's wrong with that? Granted, the for loop construct would have
>been better for the task instead of while, and the expensive consultant
>should have seen that. But what about the i = i + 1 increment? It
>smacks of BASIC, but there is nothing wrong with it.  It's not any less
>efficient than i++ or ++i.

Not only that, but perhaps that was the third or fourth draft of the
code, and a while loop was more appropriate for the original draft.
It's often the case that even when I know there's a more "appropriate"
structure for code that I'm modifying, I leave the old code intact as
long as there's nothing actually *wrong* with it -- fewer changes
equates to fewer bugs (not always, but in general).
--
                      --- Aahz (@netcom.com)

Androgynous poly kinky vanilla queer het    <*>      http://www.rahul.net/aahz/
Hugs and backrubs -- I break Rule 6  (if you want to know, do some research)


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

Date: 15 Aug 1999 22:18:59 GMT
From: bmcd@es.co.nz (Ben Caradoc-Davies)
Subject: Re: Wacky Programming Tales
Message-Id: <slrn7refg6.d4.bmcd@ripley.sulaco.net>

On Sun, 15 Aug 1999 20:15:44 GMT, Kaz Kylheku <kaz@ashi.FootPrints.net> wrote:
[reinventing "for"]
>So what's wrong with that? Granted, the for loop construct would have
>been better for the task instead of while, and the expensive consultant should
>have seen that. But what about the i = i + 1 increment? It smacks of BASIC, but
>there is nothing wrong with it.  It's not any less efficient than i++ or ++i.

The question is not one of efficiency but one of expressing the intent of the
programmer. Seeing this written as a while loop made me double take ...
where's the trick? What is going on here?

There is nothing wrong with i = i + 1 (especially for us Pythonistas :-), but
taken together with the loop it suggests an unfamiliarity with the accepted
idioms of the language.

>Maybe the consultant is anally retentive about not using operators other than
>assignment that have the side effect of modifying an object, and not using more
>than one side effect in a full expression. That approach leads to uninsipiring
>code, but nevertheless code that won't possibly have undefined behaviors due to
>ambiguities.
>In other words, with his ultra-conservative approach, the weenie is unlikely
>to ever things like a[i] = i++.

I wish this were the case, but given the rest of the code, I doubt it. You are
however, most charitable and tolerant :-)

>I'm afraid you don't have a case, if the program otherwise fulfilled its
>functional, performance and reliability requirements.

[Warning: may contain traces of rants]

The program did have some annoying bugs, and it was in the hunt for these that
the, er, unusual code was found. However, the program did mostly fulfil its
functional, performance, and reliability requirements, as they existed at the
time. And here's the rub:

A program must fulfil more than just those requirements, but also that of
maintainability. I'm sure I don't have to remind anyone here that a piece of
source code is a living document, and should be amenable to change (which is
why I was working on it in the first place).

The real problem I had with the project in question was that (except for some
crucial headers), the entire source code was almost uncommented except for a
copyright notice at the top of each source file. Understanding the code was an
exercise in reverse-engineering the intent of the programmer. I've seen this in
scientific software (such as the 49000 LOC of uncommented Fortran 77 written by
an engineer with english as a second language, with no use of procedures and
the entire flow-control managed by circuitous GOTOs and global variables), but
in a business environment it is unforgiveable.

When I left, I passed the [C++] project on to my successor, who was quite a
greenhorn. Meanwhile, the original author had fled the country. Now the current
project manager ("ANSI C? No I haven't heard of that company.") is leaving too.
The only record of what the code is meant to do is some outdated manuals and
the source code. This is mission-critical business software.

>The guy programs for accounting firms. So it's a given that he can't possibly
>be a great hacker who writes slick code. He does things that some of us
>wouldn't touch with a ten foot pole.  His high cost could have something to do
>with his domain specialization, and with a high profit margin on the part of
>the contracting company (assuming he's not freelance).

I'm sure he would have only seen a tiny slice of what the multinational charged
for his time. However, I think his price was due more to the gullibility of the
client and wandering project control than the domain. This is a bog-standard
database front-end!

Phew!

-- 
Ben Caradoc-Davies <bmcd@es.co.nz>


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

Date: 15 Aug 1999 22:30:28 GMT
From: bmcd@es.co.nz (Ben Caradoc-Davies)
Subject: Re: Wacky Programming Tales
Message-Id: <slrn7reg5o.d4.bmcd@ripley.sulaco.net>

On 15 Aug 1999 21:45:57 GMT, Aahz Maruch <aahz@netcom.com> wrote:
>Not only that, but perhaps that was the third or fourth draft of the
>code, and a while loop was more appropriate for the original draft.
>It's often the case that even when I know there's a more "appropriate"
>structure for code that I'm modifying, I leave the old code intact as
>long as there's nothing actually *wrong* with it -- fewer changes
>equates to fewer bugs (not always, but in general).

Sure, if it ain't broke ...

Unfortunately, in this case, the original specifications appear to have been
reduced, and there are huge chunks of partly implemented and even obsolete
code, including a large source source file which should have been entirely
deleted as it's functionality had been absorbed into another. This was only
deducible by examiing the linker options.

If there was any evidence of a drafting process, it wasn't obvious.

But yes, there may well have been something more complicated in the loop. For
example, if he was messing with "i" in the loop, a while loop would have been
a good way to draw another programmer's attention to the fact that something
fishy was going on, if he was so averse to comments.

-- 
Ben Caradoc-Davies <bmcd@es.co.nz>


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

Date: Sun, 15 Aug 1999 21:07:29 GMT
From: chrisl@tourneyland.com (Chris)
Subject: Which Module for POP3?
Message-Id: <37b72a44.6654062@news.swbell.net>

I'm looking for a module to do some simple POP3 stuff. I searched
CPAN, and there seems to be at least 2:
	
	Mail::POP3Client
	Net::POP3

I guess there's no reason why I can't just grab em both and use the
one I liked better, but I'm new to Perl, especially to modules and
CPAN, so I thought I'd ask to see if it mattered.

Thanks,
Chris


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

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 546
*************************************


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