[31871] in Perl-Users-Digest

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

Perl-Users Digest, Issue: 3134 Volume: 11

daemon@ATHENA.MIT.EDU (Perl-Users Digest)
Fri Sep 17 03:09:29 2010

Date: Fri, 17 Sep 2010 00:09: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, 17 Sep 2010     Volume: 11 Number: 3134

Today's topics:
        How to update the GUI <founder@pege.org>
    Re: How to update the GUI <ben@morrow.me.uk>
    Re: How to update the GUI <founder@pege.org>
    Re: How to update the GUI <ben@morrow.me.uk>
    Re: Marc the Reaper <marc.girod@gmail.com>
        Memory leak with threads <jcombe@gmail.com>
    Re: Memory leak with threads <rvtol+usenet@xs4all.nl>
    Re: Memory leak with threads <rvtol+usenet@xs4all.nl>
    Re: Memory leak with threads <jcombe@gmail.com>
    Re: Memory leak with threads <smallpond@juno.com>
    Re: Memory leak with threads sln@netherlands.com
    Re: Memory leak with threads <xhoster@gmail.com>
        SOAP::Lite, Data::Dumper and getting the values <tch@nospam.wpkg.org>
    Re: SOAP::Lite, Data::Dumper and getting the values <marc.girod@gmail.com>
    Re: Typeglobs and References <derykus@gmail.com>
        Digest Administrivia (Last modified: 6 Apr 01) (Perl-Users-Digest Admin)

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

Date: Fri, 17 Sep 2010 01:47:38 +0200
From: =?ISO-8859-1?Q?Roland_M=F6sl?= <founder@pege.org>
Subject: How to update the GUI
Message-Id: <i6uaap$kv9$1@news.albasani.net>

I am just migrating a software from
a 11 year old version from active Perl.

This 11 year old version can not be direct installed on Windows 7 - 64 Bit.

The main migration problem is the behavior of the GUI updates
during the software operates.

During long task, can be up to 2 hours,
the old Perl version shows updates on the GUI,
so the user is informed about the progress of the work.

I installed now
ActivePerl 5.12 - Windows x86

The old software runs, but the only major problem:

The GUI does not update during long tasks.
The GUI updates only when PERL waits for the
next user interaction.

How to force during the software works
updates of the GUI display?

-- 
Roland Mösl - PEGE - http://www.pege.org
Planetary Engineering Group Earth


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

Date: Fri, 17 Sep 2010 01:37:47 +0100
From: Ben Morrow <ben@morrow.me.uk>
Subject: Re: How to update the GUI
Message-Id: <rrpam7-pvg.ln1@osiris.mauzo.dyndns.org>


Quoth =?ISO-8859-1?Q?Roland_M=F6sl?= <founder@pege.org>:
> I am just migrating a software from
> a 11 year old version from active Perl.

Which version of Perl were you using previously?
Which version of Windows?

> This 11 year old version can not be direct installed on Windows 7 - 64 Bit.

Have you tried 5.12 under whatever version of Windows you were using
before?

> The main migration problem is the behavior of the GUI updates
> during the software operates.

What GUI toolkit are you using?

> During long task, can be up to 2 hours,
> the old Perl version shows updates on the GUI,
> so the user is informed about the progress of the work.
> 
> I installed now
> ActivePerl 5.12 - Windows x86
> 
> The old software runs, but the only major problem:
> 
> The GUI does not update during long tasks.
> The GUI updates only when PERL waits for the
> next user interaction.

Please post a minimal program that exhibits this problem.

Ben



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

Date: Fri, 17 Sep 2010 03:06:58 +0200
From: =?UTF-8?B?Um9sYW5kIE3DtnNs?= <founder@pege.org>
Subject: Re: How to update the GUI
Message-Id: <i6uevi$th3$1@news.albasani.net>

On 2010-09-17 02:37, Ben Morrow wrote:
>
> Quoth =?ISO-8859-1?Q?Roland_M=F6sl?=<founder@pege.org>:
>> I am just migrating a software from
>> a 11 year old version from active Perl.
>
> Which version of Perl were you using previously?

ActiveState built 522 from 1999

> Which version of Windows?

This had been used under Win 95, Win 98, Win XP
and now under Windows 7 64 Bit.

Only the installer does not work under Windows 7 64 Bit.

I transferred with Laplink PC-Mover
the installation from my old Win XP to my new notebook

>> This 11 year old version can not be direct installed on Windows 7 - 64 Bit.
>
> Have you tried 5.12 under whatever version of Windows you were using
> before?

I tried to migrate also 2002, but I was not able to
solve the same problem, the GUI updates.

>> The main migration problem is the behavior of the GUI updates
>> during the software operates.
>
> What GUI toolkit are you using?

HTA = Hyper Text Application
using MSIE as GUI

Looks like

<html><head><title>WSC - Web Site Compiler - loading...</title>

<HTA:APPLICATION ID="oHTA"
applicationname="APPLICATIONNAME"
icon=ICONPATH
scroll=no
singleInstance=yes
windowstate=maximize />


<script language=PerlScript>

use strict "vars";
use strict "refs";
use strict "subs";
use Win32::Shell;

&init();

>> During long task, can be up to 2 hours,
>> the old Perl version shows updates on the GUI,
>> so the user is informed about the progress of the work.
>>
>> I installed now
>> ActivePerl 5.12 - Windows x86
>>
>> The old software runs, but the only major problem:
>>
>> The GUI does not update during long tasks.
>> The GUI updates only when PERL waits for the
>> next user interaction.
>
> Please post a minimal program that exhibits this problem.

I use for example updates of the title like

$main::window->document-> { "title" } = "Just working on folder/file";

This statements are all around the program, for example
during editing a page:

$main::window->document-> { "title" } = "Edit at folder/file";

Than I start the software for a long task,
for example to create out of the database 2000 html pages

During this long task, the title should be changed
to show the progress of the work

$main::window->document-> { "title" } = "Creating hmtl at 2000/index";
 ..
 ..
$main::window->document-> { "title" } = "Creating hmtl at 2010/index";

And when the task is finished again

$main::window->document-> { "title" } = "Edit at folder/file";


But at Perl 5.12, I see always onle "Edit at folder/file"
instead of the progress messages.

I also use innerHTML to show a progress bar

$main::window->document->all->message-> { 'innerHTML'	} = 
$compile::progress;

Same effect, never saw this display under Perl 5.12

-- 
Roland Mösl - PEGE - http://www.pege.org
Planetary Engineering Group Earth


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

Date: Fri, 17 Sep 2010 05:23:53 +0100
From: Ben Morrow <ben@morrow.me.uk>
Subject: Re: How to update the GUI
Message-Id: <p37bm7-h9k.ln1@osiris.mauzo.dyndns.org>


Quoth =?UTF-8?B?Um9sYW5kIE3DtnNs?= <founder@pege.org>:
> On 2010-09-17 02:37, Ben Morrow wrote:
> >
> > Quoth =?ISO-8859-1?Q?Roland_M=F6sl?=<founder@pege.org>:
> >> I am just migrating a software from
> >> a 11 year old version from active Perl.
> >
> > Which version of Perl were you using previously?
> 
> ActiveState built 522 from 1999

Which version of *perl* is that? 5005? If so you should have upgraded
a long time ago.

> > Which version of Windows?
> 
> This had been used under Win 95, Win 98, Win XP
> and now under Windows 7 64 Bit.
> 
> Only the installer does not work under Windows 7 64 Bit.

I presume you mean the ActiveState installer for the old build of perl?

> I transferred with Laplink PC-Mover
> the installation from my old Win XP to my new notebook

So, let me get this straight: 

    5005 on WinXP   works correctly 
    5005 on Win7    works correctly 
    5.12 on Win7    fails

Is that right?

> >> This 11 year old version can not be direct installed on Windows 7 - 64 Bit.
> >
> > Have you tried 5.12 under whatever version of Windows you were using
> > before?
> 
> I tried to migrate also 2002, but I was not able to
> solve the same problem, the GUI updates.

I don't understand what you mean here. What is '2002'?

Have you tried using 5.12 on WinXP?

> >> The main migration problem is the behavior of the GUI updates
> >> during the software operates.
> >
> > What GUI toolkit are you using?
> 
> HTA = Hyper Text Application
> using MSIE as GUI

Meh. OK. You will almost certainly have to take this up with
ActiveState. I've never used PerlScript, and as far as I know there's
noone here who's an expert on it.

> > Please post a minimal program that exhibits this problem.
> 
> I use for example updates of the title like
> 
> $main::window->document-> { "title" } = "Just working on folder/file";
> 
> This statements are all around the program, for example
> during editing a page:
> 
> $main::window->document-> { "title" } = "Edit at folder/file";
<snip>

I will just point out that this *isn't* a complete program. A complete
program looks something like (I'm guessing here, so bear with me):

    <html>
        <head>
            <title>WSC - Web Site Compiler - loading...</title>

            <HTA:APPLICATION ID="oHTA"
            applicationname="APPLICATIONNAME"
            icon=ICONPATH
            scroll=no
            singleInstance=yes
            windowstate=maximize />

            <script language=PerlScript>
                $main::window->document->{title} = "foo";
            </script>
        </head>
        <body>foo</body>
    </html>

together with a description along the lines of 'I expected the title of
the page to change to "foo", but it didn't'. You won't get anywhere
until you can come up with something like this, and confirm that it
demonstrates the problem.

Ben



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

Date: Thu, 16 Sep 2010 23:09:45 -0700 (PDT)
From: Marc Girod <marc.girod@gmail.com>
Subject: Re: Marc the Reaper
Message-Id: <f73acf5a-d818-457c-89e5-3eab7c90c533@c16g2000vbp.googlegroups.com>

On Sep 16, 10:13=A0am, "C.DeRykus" <dery...@gmail.com> wrote:

> So you could change the handler slightly and
> eliminate the waitpid in the sleep loop.

Thanks. You are right, of course.
What is your reason to prefer 'while keys %family' to 'while %family'?

Marc


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

Date: Thu, 16 Sep 2010 05:18:58 -0700 (PDT)
From: Jon Combe <jcombe@gmail.com>
Subject: Memory leak with threads
Message-Id: <9d726d7e-82ff-405f-91a5-e74d93ab56f9@k9g2000vbo.googlegroups.com>

I have some Perl code that uses threads but found that after running
for a few days the memory usage had increased dramatically. I
simplified the code to the following but find when I run it with a
varying number of threads, the memory usage always increases. The
"countdown" at the end is just there to give me 30 seconds to grab the
memory utilisation before the process ends. I find that it uses approx
70MB for 50,000 threads, 140MB for 100,000 threads and 210MB for
150,000 threads.

I've tried on Perl 5.8.8, 10.2 and 12.2 all with similar results. Is
this a bug or have I just done something wrong? Any help appreciated!

#!/usr/bin/perl -w

use strict;
use threads;
use threads::shared;

for ( my $i = 0 ; $i < 150000 ; $i++ )
{
	my $thread = threads->create('thread_function');
	$thread -> join();
	if ( $i % 1000 == 0 )
	{
		printf ( "%010i\n" , $i );
	}
}

print "DONE\n";

for ( my $i = 0 ; $i < 30 ; $i++ )
{
	print "Count down " . (30-$i) . "\n";
	sleep(1);
}

sub thread_function
{
}

Thanks.
Jon


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

Date: Thu, 16 Sep 2010 17:21:29 +0200
From: "Dr.Ruud" <rvtol+usenet@xs4all.nl>
Subject: Re: Memory leak with threads
Message-Id: <4c9235f9$0$41105$e4fe514c@news.xs4all.nl>

On 2010-09-16 14:18, Jon Combe wrote:

> I have some Perl code that uses threads but found that after running
> for a few days the memory usage had increased dramatically. I
> simplified the code to the following but find when I run it with a
> varying number of threads, the memory usage always increases. The
> "countdown" at the end is just there to give me 30 seconds to grab the
> memory utilisation before the process ends. I find that it uses approx
> 70MB for 50,000 threads, 140MB for 100,000 threads and 210MB for
> 150,000 threads.
>
> I've tried on Perl 5.8.8, 10.2 and 12.2 all with similar results. Is
> this a bug or have I just done something wrong? Any help appreciated!

Joined threads still occupy memory, so that is probably all.

Play around with the below. Also run it with a parameter.


#!/usr/bin/perl -w
use strict;

use Devel::Size qw( total_size );

use threads;
use threads::shared;

my @thread;
for ( 0 .. 2999 ) {

     push @thread, threads->create('thread_function');

     $thread[ -1 ]->join();

     @ARGV and $thread[ -1 ] = undef;

     if ( @thread % 1000 == 0 ) {
         printf "%s %s\n" , 0+ @thread, total_size( \@thread );
     }
}

printf "%s %s\n" , 0+ @thread, total_size( \@thread );

sub thread_function {
     # ...
}


Without the undeffing, it looks like this:

        0       56
     1000    88160
     2000   176256
     3000   268448

and with undeffing, like this:

        0       56
     1000    20144
     2000    40240
     3000    64432


-- 
Ruud


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

Date: Thu, 16 Sep 2010 17:27:38 +0200
From: "Dr.Ruud" <rvtol+usenet@xs4all.nl>
Subject: Re: Memory leak with threads
Message-Id: <4c92376a$0$41105$e4fe514c@news.xs4all.nl>

On 2010-09-16 17:21, Dr.Ruud wrote:

> Without the undeffing, it looks like this:
>
> 0 56
> 1000 88160
> 2000 176256
> 3000 268448
>
> and with undeffing, like this:
>
> 0 56
> 1000 20144
> 2000 40240
> 3000 64432

That was the output of a slightly newer version:

#!/usr/bin/perl -w
use strict;

use Devel::Size qw( total_size );

use threads;
use threads::shared;

use constant NUM => 3000;

my @thread;
printf "%8s %8s\n" , 0+ @thread, total_size( \@thread );

for ( 1 .. NUM ) {

     push @thread, threads->create('thread_function');
     $thread[ -1 ] ->  join();

     @ARGV and $thread[ -1 ] = undef;

     if ( ( NUM - @thread ) % 1000 == 0 ) {
         printf "%8s %8s\n" , 0+ @thread, total_size( \@thread );
     }
}

sub thread_function {
     # ...
}

__END__


-- 
Ruud


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

Date: Thu, 16 Sep 2010 08:45:34 -0700 (PDT)
From: Jon Combe <jcombe@gmail.com>
Subject: Re: Memory leak with threads
Message-Id: <b34942a9-9992-4ec6-955b-afb41eba2e54@c32g2000vbq.googlegroups.com>

> That was the output of a slightly newer version:

Thanks for looking into this. I'm a little puzzled why the need to
undef the thread. Since my original code stored each thread in my
$thread in the loop $thread should go out of scope after each
iteration of the loop and should get automatically cleaned up. Is that
not the case?

Looking at your results (and I get similar) it appears threads still
use memory after they've ended. Is there no way to free up all the
memory a thread occupied once it has ended?

Thanks
Jon


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

Date: Thu, 16 Sep 2010 13:42:52 -0400
From: Steve C <smallpond@juno.com>
Subject: Re: Memory leak with threads
Message-Id: <i6tkv9$d7b$1@news.eternal-september.org>

On 09/16/2010 08:18 AM, Jon Combe wrote:
> I have some Perl code that uses threads but found that after running
> for a few days the memory usage had increased dramatically. I
> simplified the code to the following but find when I run it with a
> varying number of threads, the memory usage always increases. The
> "countdown" at the end is just there to give me 30 seconds to grab the
> memory utilisation before the process ends. I find that it uses approx
> 70MB for 50,000 threads, 140MB for 100,000 threads and 210MB for
> 150,000 threads.
>
> I've tried on Perl 5.8.8, 10.2 and 12.2 all with similar results. Is
> this a bug or have I just done something wrong? Any help appreciated!
>

Is there any way to change your application to have a thread pool
instead of creating and destroying threads?


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

Date: Thu, 16 Sep 2010 15:19:40 -0700
From: sln@netherlands.com
Subject: Re: Memory leak with threads
Message-Id: <d55596hf7mfjofiv0kjjdprpdfq05j8pa8@4ax.com>

On Thu, 16 Sep 2010 05:18:58 -0700 (PDT), Jon Combe <jcombe@gmail.com> wrote:

>I have some Perl code that uses threads but found that after running
>for a few days the memory usage had increased dramatically. I
>simplified the code to the following but find when I run it with a
>varying number of threads, the memory usage always increases. The
>"countdown" at the end is just there to give me 30 seconds to grab the
>memory utilisation before the process ends. I find that it uses approx
>70MB for 50,000 threads, 140MB for 100,000 threads and 210MB for
>150,000 threads.
>
>I've tried on Perl 5.8.8, 10.2 and 12.2 all with similar results. Is
>this a bug or have I just done something wrong? Any help appreciated!
>
>#!/usr/bin/perl -w
>
>use strict;
>use threads;
>use threads::shared;
>
>for ( my $i = 0 ; $i < 150000 ; $i++ )
>{
>	my $thread = threads->create('thread_function');
>	$thread -> join();
>	if ( $i % 1000 == 0 )
>	{
>		printf ( "%010i\n" , $i );
>	}
>}
>
>print "DONE\n";
>
>for ( my $i = 0 ; $i < 30 ; $i++ )
>{
>	print "Count down " . (30-$i) . "\n";
>	sleep(1);
>}
>
>sub thread_function
>{
>}
>

I ran this code and did not find the problem you
have. I'm using Activestate 5.10.0 for win32 on an
XP platform.

From task manager, the mem usage fluxuates around 3.2 MB
(sort of a minimum for the perl interpreter). The # of 
threads is never more than 1 - 2 so the thread is being
destroyed fine.

There is no reason "my $thread" should not be reused and its
object dereferenced.
What seems to be the problem is the object it references
is not being freed.

Some things you could try, but probably won't work:

- threads->create(\&thread_function)->join();

- Create just a few threads, then see what these say:
  threads->list()
  threads->list(threads::all)
  threads->list(threads::running)
  threads->list(threads::joinable)

Also, there are caveats about various things, stacksize,
OS, etc..

-sln


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

Date: Thu, 16 Sep 2010 19:12:54 -0700
From: Xho Jingleheimerschmidt <xhoster@gmail.com>
Subject: Re: Memory leak with threads
Message-Id: <4c92e3bd$0$17684$ed362ca5@nr5-q3a.newsreader.com>

Dr.Ruud wrote:
> On 2010-09-16 14:18, Jon Combe wrote:
> 
>> I have some Perl code that uses threads but found that after running
>> for a few days the memory usage had increased dramatically. I
>> simplified the code to the following but find when I run it with a
>> varying number of threads, the memory usage always increases. The
>> "countdown" at the end is just there to give me 30 seconds to grab the
>> memory utilisation before the process ends. I find that it uses approx
>> 70MB for 50,000 threads, 140MB for 100,000 threads and 210MB for
>> 150,000 threads.
>>
>> I've tried on Perl 5.8.8, 10.2 and 12.2 all with similar results. Is
>> this a bug or have I just done something wrong? Any help appreciated!
> 
> Joined threads still occupy memory, so that is probably all.
> 
> Play around with the below. Also run it with a parameter.
> 
> 
> #!/usr/bin/perl -w
> use strict;
> 
> use Devel::Size qw( total_size );
> 
> use threads;
> use threads::shared;
> 
> my @thread;
> for ( 0 .. 2999 ) {
> 
>     push @thread, threads->create('thread_function');

Why introduce an array when it wasn't there in the original code and it 
doesn't do anything meaningful?


> 
>     $thread[ -1 ]->join();
> 
>     @ARGV and $thread[ -1 ] = undef;
> 
>     if ( @thread % 1000 == 0 ) {
>         printf "%s %s\n" , 0+ @thread, total_size( \@thread );
>     }
> }
> 
> printf "%s %s\n" , 0+ @thread, total_size( \@thread );
> 
> sub thread_function {
>     # ...
> }
> 
> 
> Without the undeffing, it looks like this:
> 
>        0       56
>     1000    88160
>     2000   176256
>     3000   268448
> 
> and with undeffing, like this:
> 
>        0       56
>     1000    20144
>     2000    40240
>     3000    64432
> 


This is just telling us that arrays take up space up to their high water 
mark, more when dense and less when sparse, but still space.  It has 
nothing to do with threads.  The leak (which does seem to exist) is not 
going to be detected using Devel::Size on a variable that has nothing to 
do with the leak.

You need to measure the process space from the OS, not from Perl, which 
after all likely cannot be trusted if it is leaking memory.

On Linux:

for ( my $i = 0 ; $i < 150000 ; $i++ )
{
         my $thread = threads->create('thread_function');
         $thread -> join();
         if ( $i % 1000 == 0 )
         {
                 printf ( "%010i\t%3\$s" , $i, `ps -p $$ -o rss` );
         }
}


Xho


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

Date: Thu, 16 Sep 2010 16:31:11 +0200
From: Tomasz Chmielewski <tch@nospam.wpkg.org>
Subject: SOAP::Lite, Data::Dumper and getting the values
Message-Id: <8feo1fFatgU1@mid.uni-berlin.de>

My hosting provider lets me change the IP assigned to each of the servers (IP failover).
It can be done in the web interface, but in reality, it's much better to do this automatically with Heartbeat as it detects that one of the servers is down.


For that, there is some Perl code using SOAP::Lite - but I'm not sure how I can get the values out of it to use them in my own code.


my $result = $soap->call( 'dedicatedFailoverList' => ($session, $hosts{$hostname}) );
my $return = $result->result();


Now, Data::Dumper would return this - I'd like to access the values through a hash, array, variable, but I' not sure how:

print $return;

MyArrayOfDedicatedFailoverStructType=ARRAY(0x25608d8)


print Dumper $return;

$VAR1 = bless( [
                 bless( {
                          'routedTo' => 'aaa.bbb.ccc.ddd',
                          'comment' => 'webserver failover',
                          'ip' => '1.1.1.1',
                          'ssl' => 0
                        }, 'dedicatedFailoverStruct' ),
                 bless( {
                          'routedTo' => 'aaa.bbb.ccc.ddd',
                          'comment' => 'webserver failover',
                          'ip' => '2.2.2.2',
                          'ssl' => 0
                        }, 'dedicatedFailoverStruct' ),
                 bless( {
                          'routedTo' => 'aaa.bbb.ccc.ddd',
                          'comment' => 'webserver failover',
                          'ip' => '3.3.3.3',
                          'ssl' => 0
                        }, 'dedicatedFailoverStruct' ),
                 bless( {
                          'routedTo' => 'aaa.bbb.ccc.ddd',
                          'comment' => 'webserver failover',
                          'ip' => '4.4.4.4',
                          'ssl' => 0
                        }, 'dedicatedFailoverStruct' ),
                 bless( {
                          'routedTo' => undef,
                          'comment' => undef,
                          'ip' => undef,
                          'ssl' => 0
                        }, 'dedicatedFailoverStruct' )
               ], 'MyArrayOfDedicatedFailoverStructType' );


-- 
Tomasz Chmielewski
http://wpkg.org



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

Date: Thu, 16 Sep 2010 23:43:38 -0700 (PDT)
From: Marc Girod <marc.girod@gmail.com>
Subject: Re: SOAP::Lite, Data::Dumper and getting the values
Message-Id: <67e1cf68-3c7b-4efc-ae07-f8c09dab26a2@q9g2000vbd.googlegroups.com>

On Sep 16, 3:31=A0pm, Tomasz Chmielewski <t...@nospam.wpkg.org> wrote:

> I'd like to access the values through a hash, array, variable, but I' not=
 sure how:

for (@$return) { print $_->{ip} if defined $_->{ip} }

$return is an array of references to dedicatedFailoverStruct.
Did I understand your question?

Marc


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

Date: Thu, 16 Sep 2010 10:25:56 -0700 (PDT)
From: "C.DeRykus" <derykus@gmail.com>
Subject: Re: Typeglobs and References
Message-Id: <d77decd2-0ed1-4e33-a7ec-a839c794866d@k17g2000prf.googlegroups.com>

On Sep 16, 1:09=A0am, Ilya Zakharevich <nospam-ab...@ilyaz.org> wrote:
> On 2010-09-15, C.DeRykus <dery...@gmail.com> wrote:
>
> > BTW, ${\$a} is also equivalent to ${*a}.
>
> Of course, it is NOT.
>
> >perl -wle "$a=3D12; my $a=3D2; print ${\$a}; print ${*a}"
>
> 2
> 12
>

Agreed, watch your feet and no lexicals "need apply"
for this global position.


--
Charles DeRykus


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

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


Administrivia:

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

Back issues are available via anonymous ftp from
ftp://cil-www.oce.orst.edu/pub/perl/old-digests. 

#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 V11 Issue 3134
***************************************


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