[16425] in Perl-Users-Digest

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

Perl-Users Digest, Issue: 3837 Volume: 9

daemon@ATHENA.MIT.EDU (Perl-Users Digest)
Fri Jul 28 18:15:40 2000

Date: Fri, 28 Jul 2000 15:15:25 -0700 (PDT)
From: Perl-Users Digest <Perl-Users-Request@ruby.OCE.ORST.EDU>
To: Perl-Users@ruby.OCE.ORST.EDU (Perl-Users Digest)
Message-Id: <964822524-v9-i3837@ruby.oce.orst.edu>
Content-Type: text

Perl-Users Digest           Fri, 28 Jul 2000     Volume: 9 Number: 3837

Today's topics:
        PERL problems expert witnessing (Miguel Angel Gallardo Ortiz en www.cita.es)
        Problems with next; in subroutines <noemail@nodomain.com>
    Re: Should truncate length be 0? <lr@hpl.hp.com>
        Strange behaviour with localtime() <t0873@my-deja.com>
    Re: Substitute string <lr@hpl.hp.com>
    Re: Substitute string (Abigail)
    Re: Substitute string (Abigail)
    Re: Suggestion for syntax change <keithmur@mindspring.com>
    Re: Suggestion for syntax change <keithmur@mindspring.com>
    Re: Suggestion for syntax change <keithmur@mindspring.com>
        taking subroutine name as a parameter <david.t.liu@intel.com>
    Re: taking subroutine name as a parameter <sariq@texas.net>
    Re: taking subroutine name as a parameter (Andrew J. Perrin)
        test posting <mike@cyborg-group.com>
        test posting <mike@cyborg-group.com>
    Re: test posting <rbank@csf.edu>
        Truncation (was Do I Need Chomp?) (Kevin Reid)
        user management script ? <eemar@bath.ac.uk>
    Re: Win32 Perl on NT: Domain Sync-ing <steve@i66.net>
    Re: Writing HTML within Perl <bart.lateur@skynet.be>
    Re: WWWBoard.PL (Neil Kandalgaonkar)
        Digest Administrivia (Last modified: 16 Sep 99) (Perl-Users-Digest Admin)

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

Date: Fri, 28 Jul 2000 19:00:12 GMT
From: miguel@cita.es (Miguel Angel Gallardo Ortiz en www.cita.es)
Subject: PERL problems expert witnessing
Message-Id: <3981d7a4.548028423@news.intercom.es>

I am working as expert witness in forensic computing for Spanish
Courts of Law. My company www.cita.es is interested in any reference
of expert witnessing reports on computing and we shall be pleased to
keep in touch with experts and victims all over the World.

Since 1989 we have been developing new tools for Courts of Law
evidences on computing (I have been officially teaching "forensic
computing" to many Spanish judges, public prosecutors and court
officials), and we also prepare any person who is going to relate to
an incident, a factual situation or just his opinions in any
technology.

We improve technical credibility in oral and written testimony and we
do our best to make very detailed reconstructions of operating
systems, databases, applications and any program showing the problem
to third parties (like judges and lawyers) in a very efficient way. We
have some success in mediation and arbitration using conflict theories
in technology environments.

Now we would like to know about your experiences in computing
conflicts and, if possible, how the problems were explained by
experts. If necessary, we can can keep it confidential. My background
is in engineering but I am also a criminologist, so I can understand
any legal risk and computing victims complex rights.

Please do not hesitate to contact me at any time, and of course, we
shall appreciate if you kindly forward this public message to anyone
you consider appropriate. We are here to help as much as we can.

Ing. Miguel Angel Gallardo Ortiz - Internet http://www.cita.es
C.I.T.A. Apartado (P.O. Box) 17083-28080 Madrid, Espaņa, Spain
GSM:(+34)619776475. SMS and ICQ at http://www.cita.es/urgently
Tel:(+34)914743809 Modem/Fax: 914738197 E-mail: miguel@cita.es


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

Date: Fri, 28 Jul 2000 18:55:52 GMT
From: "Dave A." <noemail@nodomain.com>
Subject: Problems with next; in subroutines
Message-Id: <YGkg5.11012$Mt.141321@nnrp1.ptd.net>

I have to check 3 ports on a server, to see that they are operational.
The following subroutine is called from within a foreach loop. In the subroutine
it runs another foreach loop on each port in an array.

sub routine {
    $timeout = 5;
    .....
    foreach $port (@ports) {
        $SIG{"ALRM"} = sub {
            print "Timed Out connecting to port: $port\n";
            if ($socket) { close ($socket); }
            next;
        };
        alarm $timeout;

        # Timeout => 5,   didn't work, so we omitted it
        # and used alarm $timeout; above.

        $socket  = IO::Socket::INET->new(....)
            or print "Unable to connect to: $port\n";

        if ($socket) { close ($socket); push (@open_ports, $port); }
    }
    print "Current running services : @open_ports\n";
}

I have tried using next portloop; (adding the label (portloop: foreach...)) and just next;
each exit the subroutine and continue at the original foreach in MAIN.
but not before pushing $port into @open_ports, and running the last
commands in the subroutine.

I was under the impression that next;  (omitting LABEL) refers
to the inner-most loop as stated in the perl-man.. but here it does not.
(unless my definition of "inner-most loop" is incorrect :)

Does anyone have any suggestions as to what I am doing wrong?

David





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

Date: Fri, 28 Jul 2000 11:29:41 -0700
From: Larry Rosler <lr@hpl.hp.com>
Subject: Re: Should truncate length be 0?
Message-Id: <MPG.13eb70f219aac7d98ac01@nntp.hpl.hp.com>

In article <2427-3981193B-97@storefull-245.iap.bryant.webtv.net> on Fri, 
28 Jul 2000 00:25:15 -0500 (CDT), BUCK NAKED1 <dennis100@webtv.net> 
says...

 ...

> Of course, feel free to point out anything else that you don't like in
> the below coding.

Just a regex bug that has nothing to do with your major issues.

 ...

> for($num) {s/(1[123]|[4-90]$)/$1th/      or 
> s/(1$)/$1st/ or s/(2$)/$1nd/      or 
> s/(3$)/$1rd/;};

The end-anchor is in the wrong place in the first regex (the first 
sequence 11, 12 or 13 anywhere in the number would end up suffixed by 
'th').  Also, I am amused each time I see it by your going out of your 
way to capture and then substitute known information, instead of just 
plugging it in directly.  Retaining your odd formatting, but not the 
superfluous semicolons:

  for($num) {s/(1[123]|[4-90])$/$1th/      or 
  s/1$/1st/ or s/2$/2nd/      or 
  s/3$/3rd/}

-- 
(Just Another Larry) Rosler
Hewlett-Packard Laboratories
http://www.hpl.hp.com/personal/Larry_Rosler/
lr@hpl.hp.com


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

Date: Fri, 28 Jul 2000 18:07:00 GMT
From: t0873 <t0873@my-deja.com>
Subject: Strange behaviour with localtime()
Message-Id: <8lsi3u$rql$1@nnrp1.deja.com>



Hi all,

I am trying to use localtime on Win32 machine. if I use DOS time
command it shows the correct EST time. if I try to print with localtime
(), it shows an hour less. Is this the way localtime() should work??

Or am I doing something wrong?

Please advise. Thanks in advance.

T.


Sent via Deja.com http://www.deja.com/
Before you buy.


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

Date: Fri, 28 Jul 2000 11:46:22 -0700
From: Larry Rosler <lr@hpl.hp.com>
Subject: Re: Substitute string
Message-Id: <MPG.13eb74dc336d86b198ac02@nntp.hpl.hp.com>

[Reversing your own Jeopardized response to your post.]

In article <7hq2os8ko86n04fhk625goj7nq9kheuira@4ax.com> on Fri, 28 Jul 
2000 13:10:50 +0200, Sebastian Erlhofer <Seb.Erlhofer@evc.net> says...
> >Can someone give me the code for this:
> >
> >Convert "../../mine.zip" -> "../mine.zip"
> >It should also convert "../../../../../../../../../../mine.zip" to
> >"../mine.zip"
> 
> $To =~ s/\.\.\/..\///g;
> 
> This is it...
> 
> I found out myself :)

But you didn't test it, did you?  In each case, it gives just 
'mine.zip'.

  This is it (without Leaning-Toothpick Syndrome) ...

  $To =~ s!\.\./(?=\.\./)/!!g;

In words, remove each '../' that is followed by another '../'.

-- 
(Just Another Larry) Rosler
Hewlett-Packard Laboratories
http://www.hpl.hp.com/personal/Larry_Rosler/
lr@hpl.hp.com


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

Date: 28 Jul 2000 15:34:15 EDT
From: abigail@foad.org (Abigail)
Subject: Re: Substitute string
Message-Id: <slrn8o3o1e.vcg.abigail@alexandra.foad.org>

Sebastian Erlhofer (Seb.Erlhofer@evc.net) wrote on MMDXXIII September
MCMXCIII in <URL:news:6ko2os8843ppvb24u50u6n654ebk3b53g9@4ax.com>:
-: 
-: Can someone give me the code for this:
-: 
-: Convert "../../mine.zip" -> "../mine.zip"
-: It should also convert "../../../../../../../../../../mine.zip" to
-: "../mine.zip"


    $str = "../mine.zip" if $str eq "../../mine.zip" ||
                            $str eq "../../../../../../../../../../mine.zip";


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


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

Date: 28 Jul 2000 15:36:24 EDT
From: abigail@foad.org (Abigail)
Subject: Re: Substitute string
Message-Id: <slrn8o3o5f.vcg.abigail@alexandra.foad.org>

Sebastian Erlhofer (Seb.Erlhofer@evc.net) wrote on MMDXXIII September
MCMXCIII in <URL:news:7hq2os8ko86n04fhk625goj7nq9kheuira@4ax.com>:
'' $To =~ s/\.\.\/..\///g;
'' 
'' This is it...
'' 
'' I found out myself :)
'' 
'' >Hi
'' >
'' >Can someone give me the code for this:
'' >
'' >Convert "../../mine.zip" -> "../mine.zip"
'' >It should also convert "../../../../../../../../../../mine.zip" to
'' >"../mine.zip"
'' 


Really? That's weird because in both cases, I ended up with "mine.zip"
and not the required "../mine.zip".




Abigail
-- 
perl -we '$_ = q ;4a75737420616e6f74686572205065726c204861636b65720as;;
          for (s;s;s;s;s;s;s;s;s;s;s;s)
              {s;(..)s?;qq qprint chr 0x$1 and \161 ssq;excess;}'


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

Date: Fri, 28 Jul 2000 15:04:34 -0500
From: "Keith G. Murphy" <keithmur@mindspring.com>
Subject: Re: Suggestion for syntax change
Message-Id: <3981E752.E1FFC32B@mindspring.com>

Ilmari Karonen wrote:
> 
> In article <MPG.13eb5ede556bace989695@news>, jason wrote:
> >what Keith and I are talking about is simply increasing the evaluation
> >precedence of the magic negative index .. so that
> >
> >  (LIST)[0..-2]
> >
> >for a 5 element list first becomes
> >
> >  (LIST)[0..3]
> >
> >and THEN the '..' is done giving
> >
> >  (LIST)[0,1,2,3]
> 
> But done this way, it'd not just break some existing code using .. in
> list slices, it'd actually break *any* code using negative numbers in
> expressions inside [].
> 
> Are you really suggesting that, say:
> 
>   (qw/a b c d e/)[print join ':' => -2 .. 0  ?  1, 2  :  3, 4]
> 
> should be magically transformed into:
> 
>   (qw/a b c d e/)[print join ':' =>  3 .. 0  ?  1, 2  :  3, 4]
> 
> before evaluation?

I'm not sure what your example is supposed to do; won't compile on my
box.  And when I supply the parens it seems to need, always yields '3:4'
regardless of what range is on the left side.
> 
> >>It also involves less magic, and is therefore easier to understand.
> >
> >our point is that the negative index magic is ALREADY THERE .. a
> >negative index already provides an index relative to the end of the list
> 
> But that "magic", which is really no more magical than substr(),
> splice() and quite a few other functions, is all done _inside_ the
> indexing code.  It does not affect the evaluation of the expression
> between the [].  Your proposal would require that it did.
> 
But it already does, at least applied to the range evaluation. 

As Jason pointed out, such things as

@list[-1..3]

work fine currently.  (Which I didn't even know before).  I think he hit
it right on the head when he attributed it to evaluation order.

Going back to (something similar to) your code snippet:

my @test = qw(apple boy cow dog);
print join(',',@test[-2..-1]) . "\n";
@test[print join ':' => -2..-1];

works as you would expect.  Perl already knows that in the 2nd line the
range operator is executing within the context of @test, and in the 3rd
line within the context of, well, an anonymous list.  How would a change
in evaluation order change that?


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

Date: Fri, 28 Jul 2000 15:27:33 -0500
From: "Keith G. Murphy" <keithmur@mindspring.com>
Subject: Re: Suggestion for syntax change
Message-Id: <3981ECB5.2D41D0B0@mindspring.com>

"Keith G. Murphy" wrote:
> 
> Ilmari Karonen wrote:
> >
> > In article <MPG.13eb5ede556bace989695@news>, jason wrote:
> > >what Keith and I are talking about is simply increasing the evaluation
> > >precedence of the magic negative index .. so that
> > >
> > >  (LIST)[0..-2]
> > >
> > >for a 5 element list first becomes
> > >
> > >  (LIST)[0..3]
> > >
> > >and THEN the '..' is done giving
> > >
> > >  (LIST)[0,1,2,3]
> >
> > But done this way, it'd not just break some existing code using .. in
> > list slices, it'd actually break *any* code using negative numbers in
> > expressions inside [].
> >
> > Are you really suggesting that, say:
> >
> >   (qw/a b c d e/)[print join ':' => -2 .. 0  ?  1, 2  :  3, 4]
> >
> > should be magically transformed into:
> >
> >   (qw/a b c d e/)[print join ':' =>  3 .. 0  ?  1, 2  :  3, 4]
> >
> > before evaluation?
> 
> I'm not sure what your example is supposed to do; won't compile on my
> box.  And when I supply the parens it seems to need, always yields '3:4'
> regardless of what range is on the left side.
> >
> > >>It also involves less magic, and is therefore easier to understand.
> > >
> > >our point is that the negative index magic is ALREADY THERE .. a
> > >negative index already provides an index relative to the end of the list
> >
> > But that "magic", which is really no more magical than substr(),
> > splice() and quite a few other functions, is all done _inside_ the
> > indexing code.  It does not affect the evaluation of the expression
> > between the [].  Your proposal would require that it did.
> >
> But it already does, at least applied to the range evaluation.
> 
> As Jason pointed out, such things as
> 
> @list[-1..3]
> 
> work fine currently.  (Which I didn't even know before).  I think he hit
> it right on the head when he attributed it to evaluation order.
> 
> Going back to (something similar to) your code snippet:
> 
> my @test = qw(apple boy cow dog);
> print join(',',@test[-2..-1]) . "\n";
> @test[print join ':' => -2..-1];
> 
> works as you would expect.  Perl already knows that in the 2nd line the
> range operator is executing within the context of @test, and in the 3rd
> line within the context of, well, an anonymous list.  How would a change
> in evaluation order change that?

Sorry, that was ill-considered.  In order for the 2nd line to work, no
need for Perl to know any such thing.  In fact, further experimentation
shows me that the first value in the range is not magically transformed.

my @test = qw(apple boy cow dog);
print join(',',@test[-2..3]) . "\n";

does not yield what you would expect if you thought '-2' was evaluated
in context of @test before the range operator was applied.

So your point is well taken, it seems.  I.e., even though the range is
constructed in list context, it is not in the context of any outer list,
only for the list being constructed, so we might question how the
"magic" could work properly.  Hmmm, you may have me there.


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

Date: Fri, 28 Jul 2000 15:54:34 -0500
From: "Keith G. Murphy" <keithmur@mindspring.com>
Subject: Re: Suggestion for syntax change
Message-Id: <3981F30A.4F430E8B@mindspring.com>

jason wrote:
> 
> Keith ..
> 
> Ilmari actually brings up a reasonable point that the new behaviour
> could break existing scripts that rely on (LIST)[0..-2] to return an
> empty list

I can see that.  It does bother me.  Ilmari's latest objection bothers
me even more.


 .. so here's an idea which seems very DWIMy to me
> 
> allow parenthesis to increase the negative index evaluation order .. ie.
> old behaviour remains
> 
>   (LIST)[0..-2]
> 
> creates an empty list
> 
>   (LIST)[0..(-2)]
> 
> for a 5 element list creates
> 
>   (LIST)[0..3]
> 
> which evaluates as expected .. that's very DWIMy because it's like '..'
> has higher precedence than the special negative index evaluation .. but
> if you use parens then the negative eval is done first

Hmmm, it's probably Ilmari's turn to point out problems with that as
well.  How would you keep (-2) somewhere else in the '[]' from turning
magical?

Maybe his idea of a special variable is best, after all...
> 
> it's so DWIMy that you've probably gone and tried it out to see if it
> already works (I juse had to re-test it before saying...)

Actually, I hadn't.  Thanks for saving me the effort.  :-)


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

Date: Fri, 28 Jul 2000 11:39:07 -0700
From: "David T. Liu" <david.t.liu@intel.com>
Subject: taking subroutine name as a parameter
Message-Id: <8lsk0c$3nk@news.or.intel.com>

How do you call a subroutine by using a variable?

sub f1 { ... }
sub f2 { ... }

$x = "f1";
&$x; # calls "f1"

$x = "f2";
^$x; # calls "f2"

Can someone describe?




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

Date: Fri, 28 Jul 2000 13:54:17 -0500
From: Tom Briles <sariq@texas.net>
Subject: Re: taking subroutine name as a parameter
Message-Id: <3981D6D9.2AD61425@texas.net>

"David T. Liu" wrote:
> 
> How do you call a subroutine by using a variable?
> 
> sub f1 { ... }
> sub f2 { ... }
> 
> $x = "f1";
> &$x; # calls "f1"
> 
> $x = "f2";
> ^$x; # calls "f2"
> 
> Can someone describe?

Go to your favorite Usenet search engine and look in this group for the
term "Dispatch Table".

- Tom


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

Date: 28 Jul 2000 14:57:37 -0400
From: aperrin@demog.berkeley.edu (Andrew J. Perrin)
Subject: Re: taking subroutine name as a parameter
Message-Id: <un1j2rske.fsf@demog.berkeley.edu>

"David T. Liu" <david.t.liu@intel.com> writes:

> How do you call a subroutine by using a variable?
> 
> sub f1 { ... }
> sub f2 { ... }
> 
> $x = "f1";
> &$x; # calls "f1"
> 
> $x = "f2";
> ^$x; # calls "f2"

Well, you can do it as above (assuming your ^ is a typo and should be
an &), but it's generally considered Wrong, since you're using
symbolic references, and if you're use()ing strict;, as you should be,
you'll get an error.

Instead, use a real reference:

sub hi {
	print "Hello, world\n";
}

my $hisub = \&hi;

&$hisub;

Alternatively, you can merge the first two elements:

my $hisub = sub { print "Hello, world\n"; };

&$hisub;



-- 
----------------------------------------------------------------------
Andrew Perrin - Solaris-Linux-NT-Samba-Perl-Access-Postgres Consulting
       aperrin@igc.apc.org - http://demog.berkeley.edu/~aperrin
----------------------------------------------------------------------


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

Date: Fri, 28 Jul 2000 19:38:41 +0000
From: Mike <mike@cyborg-group.com>
Subject: test posting
Message-Id: <964809529.29995.5.nnrp-12.9e986064@news.demon.co.uk>

test


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

Date: Fri, 28 Jul 2000 19:39:05 +0000
From: Mike <mike@cyborg-group.com>
Subject: test posting
Message-Id: <964809553.29995.6.nnrp-12.9e986064@news.demon.co.uk>

test posting


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

Date: Fri, 28 Jul 2000 13:34:34 -0600
From: "Robin Bank" <rbank@csf.edu>
Subject: Re: test posting
Message-Id: <8lsn6c$170l$1@reader.nmix.net>

Shove a test post up your ass while you're at it...

--
<  Robin Bank  >
{  Web Design / Programming  }
Internet @ Cybermesa [ www.cybermesa.com ] [ 505 - 982 - 9200 ]
Mike <mike@cyborg-group.com> wrote in message
news:964809529.29995.5.nnrp-12.9e986064@news.demon.co.uk...
> test




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

Date: Fri, 28 Jul 2000 17:37:31 -0400
From: kpreid@attglobal.net (Kevin Reid)
Subject: Truncation (was Do I Need Chomp?)
Message-Id: <1eehggt.hnnt9vymeqxiN%kpreid@attglobal.net>

Bart Lateur <bart.lateur@skynet.be> wrote:

> >a matter of taste or opinion... similar to those who contested Abigail's
> >order of using print before truncate?
> 
> print() immediately followed by truncate() sometimes doesn't work. I've
> had cases (i.e. certain Perl executables) where it failed. I think that,
> to be on the safe side, you need to do a seek() before doing a
> truncate().

Here's a similar problem I once had - I wrote a program that was doing:

open FILE, (-e $file ? '+<' : '>') . " $file" or die $!;
flock FILE, LOCK_EX if CAN_FLOCK;
# ......
truncate FILE, 0;
print FILE ...stuff...;
close FILE;

It worked fine when I was testing it on Mac OS, but when I moved it to
the (Red Hat) Linux server (it's a CGI) where it was going to be used,
it started behaving weirdly. The files were also getting rather large.

I finally figured out that the truncation was (on Linux) not resetting
the position to 0, resulting in a number of null bytes equal to the
length of the previous contents of the file getting inserted at the
beginning of the file.

Solution:

truncate FILE, 0;
seek FILE, 0, 0;
print FILE ...stuff...;

-- 
 Kevin Reid: |    Macintosh:      
  "I'm me."  | Think different.


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

Date: Fri, 28 Jul 2000 20:49:20 GMT
From: "Abhishek Rungta" <eemar@bath.ac.uk>
Subject: user management script ?
Message-Id: <FyFDu8.Hvz@bath.ac.uk>

Hello All,

I am looking for a commercial or free (whichever available) readymade script
(since i am running out of time) which allows me to sign up a user with his
personal details and password. When this user logs in using this password,
he may be able to post his offers in a database (which must automatically
insert his name in the <posters> field). I already have the program written
to search the database and also to add/modify, but where i am stuck is the
password protection and automatic insertion of the user name in the database
whenever he posts after logging.

If you guys think it is not that big an issue, i would also appriciate any
help or guidance in this direction.

Regards
abhishek





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

Date: Fri, 28 Jul 2000 18:33:53 -0000
From: "Steve C" <steve@i66.net>
Subject: Re: Win32 Perl on NT: Domain Sync-ing
Message-Id: <3981d26f$0$10610@wodc7nh1.news.uu.net>


Figured it out for myself

Just made a system call to NETDOM :)

"Steve C" <steve@i66.net> wrote in message
news:3980a48f$0$7045@wodc7nh6.news.uu.net...
> Is there some way of having a perl script running with Admin Privs issue a
> 'Synchronize Entire Domain' command to the Primary DC in an NT domain?
>
> Thanks
>
> S.
>
>




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

Date: Fri, 28 Jul 2000 20:25:51 GMT
From: Bart Lateur <bart.lateur@skynet.be>
Subject: Re: Writing HTML within Perl
Message-Id: <bmq3os8ohd3ovqq3ke4o6l1ecfdd3q3mac@4ax.com>

BUCK NAKED1 wrote:

> It seems
>to me that 
>
>print("This is a test for printing HTML inside of perl");   


Oops. Under -w, you'll get a warning.

>OR
>
>print "This is a test for printing HTML inside of perl";
>
>is much easier to write than having to write the HTML inside of
>container tags such as:
>
>print <<EOF;
>This is a test for printing HTML inside of perl<BR>
>EOF

Think "multiline". As soon as you have more than one line to print, the
here-doc clearly wins. But do note that the text will ALWAYS end in a
newline.

Plus: There's no need to escape the quotes.

print <<'LITERAL';
Look ma, no escapes!'"&\'$@
Not even the backslash:"\\"
LITERAL

$_ = "Boo";
print <<"INTERPOLATED";
Still no escapes:'"&
But interpolation, yes: '$_'
and escaped backslashes:"\\"
INTERPOLATED

-- 
	Bart.


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

Date: Fri, 28 Jul 2000 20:19:05 GMT
From: neil@brevity.org (Neil Kandalgaonkar)
Subject: Re: WWWBoard.PL
Message-Id: <8lspf0$32a$1@localhost.localdomain>

In article <3981727D.840859FE@sei.cmu.edu>, Ted Marz  <tfm@sei.cmu.edu> wrote:
>Neil (and others),
>with all of your comments undoubtably being true (I have looked at the
>code as well, and don't like it particularly), 
>
>what would be people's recommendations for the best (or at least good),
>Free (or cheap, like, under $100) message board processing script (or
>collection of scripts)?

I wish I had a good answer to this. 

wwwboard.pl spread so quickly because it does actually work most of the time,
and it requires nothing else -- no SQL database. Upload'n'go. 

I just looked at the Ultimate Bulletin Board, since it seems quite featureful
and popular. Not quite as atrocious perl code and design as MSA, but not 
what I'd call great either. Six-line "19"."$year" hacks... copied in several
places... no checks on system calls... perl4 idiom... not running taint or
strict...

Then again, I know of a university that encountered similar problems 
with a commercial package. So cost is no guarantee of better code.

A good bulletin board is really just a database. Decent programmers just
build a light front-end around their favorite database.  So all the 
standalone programs are written by idiots for naive customers. 

I do not use PHP, so I cannot comment on the code, but I rather like the 
way Phorum works. Good and minimal interface, and gets a lot of the details 
right without any hassle or fanfare. I don't know of any Perl equivalent.

Slash (http://slashcode.com/) has a bulletin board but I'm not sure how
separable it is from everything else in Slash. Likewise, HBE has written some
high-quality free software for businesses, which include discussion systems.
(http://hbesoftware.com/, or http://opendesk.com/).

Easiest: you can outsource. There are many companies who do discussion 
groups for free or nearly free, and can even customize branding. Some ISPs
even offer that as a service.

I've personally written decent (IMO) bulletin boards in Perl, but that was for 
clients...  sorry. :)

(Hey Jeff, what ever happened to Stamp Out Awful Perl -- SOAP?)

-- 
Neil Kandalgaonkar <neil@brevity.org>


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

Date: 16 Sep 99 21:33:47 GMT (Last modified)
From: Perl-Users-Request@ruby.oce.orst.edu (Perl-Users-Digest Admin) 
Subject: Digest Administrivia (Last modified: 16 Sep 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.  

| NOTE: The mail to news gateway, and thus the ability to submit articles
| through this service to the newsgroup, has been removed. I do not have
| time to individually vet each article to make sure that someone isn't
| abusing the service, and I no longer have any desire to waste my time
| dealing with the campus admins when some fool complains to them about an
| article that has come through the gateway instead of complaining
| to the source.

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.

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


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