[30649] in Perl-Users-Digest

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

Perl-Users Digest, Issue: 1894 Volume: 11

daemon@ATHENA.MIT.EDU (Perl-Users Digest)
Thu Oct 2 09:09:47 2008

Date: Thu, 2 Oct 2008 06: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           Thu, 2 Oct 2008     Volume: 11 Number: 1894

Today's topics:
    Re: "AUTOLOAD" for variables? <u8526505@gmail.com>
    Re: "AUTOLOAD" for variables? <ben@morrow.me.uk>
        Basic pattern matching - baffled <63f2-oyik@dea.spamcon.org>
    Re: Basic pattern matching - baffled <tim@burlyhost.com>
    Re: Basic pattern matching - baffled <jurgenex@hotmail.com>
    Re: Handling Huge Data <whynot@pozharski.name>
    Re: Handling Huge Data <v3gupta@gmail.com>
    Re: Handling Huge Data <someone@example.com>
        new CPAN modules on Thu Oct  2 2008 (Randal Schwartz)
        Digest Administrivia (Last modified: 6 Apr 01) (Perl-Users-Digest Admin)

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

Date: Wed, 1 Oct 2008 18:35:12 -0700 (PDT)
From: cyl <u8526505@gmail.com>
Subject: Re: "AUTOLOAD" for variables?
Message-Id: <b136c3b2-1d3a-4fff-9004-26462af7194a@y71g2000hsa.googlegroups.com>

On 10$B7n(B1$BF|(B, $B2<8a(B7$B;~(B05$BJ,(B, Ben Morrow <b...@morrow.me.uk> wrote:
>
> No, there isn't. Why do you want to do this? This implies you have a
> variable name that isn't known until runtime, which in turn implies you
> should be storing these variables in an ordinary hash instead of in the
> symbol table.
>
> Ben

In my case, TestA is fixed so I cannot modify it. TestB is a wrapper
of TestA and its job is to relay the actions to TestA. There are also
TestC or TestD that plays the same role as TestB. I don't want to
access TestA directly. Instead I want to use the wrapper. The current
problem is I need to define the constants exported by TestA in TestB,
TestC and TestD which does not make sense to me. Maybe there is a
better design. If so I'm glad to know that. Thanks.


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

Date: Thu, 2 Oct 2008 04:36:21 +0100
From: Ben Morrow <ben@morrow.me.uk>
Subject: Re: "AUTOLOAD" for variables?
Message-Id: <l6sdr5-spk.ln1@osiris.mauzo.dyndns.org>


Quoth cyl <u8526505@gmail.com>:
> On 10$B7n(B1$BF|(B, $B2<8a(B7$B;~(B05$BJ,(B, Ben Morrow
> <b...@morrow.me.uk> wrote:
> >
[re: AUTOLOADing variables]
> >
> > No, there isn't. Why do you want to do this? This implies you have a
> > variable name that isn't known until runtime, which in turn implies you
> > should be storing these variables in an ordinary hash instead of in the
> > symbol table.
> 
> In my case, TestA is fixed so I cannot modify it. TestB is a wrapper
> of TestA and its job is to relay the actions to TestA. There are also
> TestC or TestD that plays the same role as TestB. I don't want to
> access TestA directly. Instead I want to use the wrapper. The current
> problem is I need to define the constants exported by TestA in TestB,
> TestC and TestD which does not make sense to me. Maybe there is a
> better design. If so I'm glad to know that. Thanks.

When you say 'exported', do you mean with Exporter? In which case they
are listed in @TestA::EXPORT_OK.

In any case, you can do something like

    package TestB;

    use TestA;

    for (keys %TestA::) {
        no strict 'refs';
        *$_ = \*{"TestA::$_"};
    }

to alias everything from TestA to TestB.

Ben

-- 
Musica Dei donum optimi, trahit homines, trahit deos.    |
Musica truces mollit animos, tristesque mentes erigit.   |   ben@morrow.me.uk
Musica vel ipsas arbores et horridas movet feras.        |


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

Date: Wed, 01 Oct 2008 22:52:48 -0700
From: Xainin <63f2-oyik@dea.spamcon.org>
Subject: Basic pattern matching - baffled
Message-Id: <bmn8e4t3gl3629fheln3r1s96ofoapktdq@4ax.com>

Help!  I don't understand why this script:

#!perl -w

$a = 'C:\WINDOWS';
$b = 'C:\WINDOWS';

if ( $a =~ /^$b$/i ) {
    print "matched '$a' to '$b'\n";
}
else {
    print "UNMATCHED '$a' vs. '$b'\n";
}

$ta = quotemeta "$a";
$tb = quotemeta "$b";
if ( $ta =~ /^$tb$/i ) {
    print "(quoted) matched '$ta' to '$tb'\n";
}
else {
    print "(quoted) UNMATCHED '$ta' vs. '$tb'\n";
}

__END__

Reports this:

UNMATCHED 'C:\WINDOWS' vs. 'C:\WINDOWS'
(quoted) UNMATCHED 'C\:\\WINDOWS' vs. 'C\:\\WINDOWS'

-- 
Hot water heaters?    Hot water needs heating?


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

Date: Wed, 01 Oct 2008 23:27:00 -0700
From: Tim Greer <tim@burlyhost.com>
Subject: Re: Basic pattern matching - baffled
Message-Id: <UQZEk.18017$kc.10033@newsfe12.iad>

Xainin wrote:

> Help!  I don't understand why this script:
> 
> #!perl -w
> 
> $a = 'C:\WINDOWS';
> $b = 'C:\WINDOWS';
> 
> if ( $a =~ /^$b$/i ) {
>     print "matched '$a' to '$b'\n";
> }
> else {
>     print "UNMATCHED '$a' vs. '$b'\n";
> }
> 
> $ta = quotemeta "$a";
> $tb = quotemeta "$b";
> if ( $ta =~ /^$tb$/i ) {
>     print "(quoted) matched '$ta' to '$tb'\n";
> }
> else {
>     print "(quoted) UNMATCHED '$ta' vs. '$tb'\n";
> }
> 
> __END__
> 
> Reports this:
> 
> UNMATCHED 'C:\WINDOWS' vs. 'C:\WINDOWS'
> (quoted) UNMATCHED 'C\:\\WINDOWS' vs. 'C\:\\WINDOWS'
> 

The \W is activated in the regular expression as a "non word" character. 
The quotemeta will automatically disable (backwack \) characters that
would otherwise be seen as a meta character or such things as ;, \,
etc. are translated as \;, \\, etc.
-- 
Tim Greer, CEO/Founder/CTO, BurlyHost.com, Inc.
Shared Hosting, Reseller Hosting, Dedicated & Semi-Dedicated servers
and Custom Hosting.  24/7 support, 30 day guarantee, secure servers.
Industry's most experienced staff! -- Web Hosting With Muscle!


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

Date: Thu, 02 Oct 2008 01:35:59 -0700
From: Jürgen Exner <jurgenex@hotmail.com>
Subject: Re: Basic pattern matching - baffled
Message-Id: <4k19e4pit0h05jmeqrgodeief9gtlvfd4q@4ax.com>

Xainin <63f2-oyik@dea.spamcon.org> wrote:
>Help!  I don't understand why this script:
>
>#!perl -w

Most people prefer
	use warnings;
and
	use strict;

>$a = 'C:\WINDOWS';
>$b = 'C:\WINDOWS';
>
>if ( $a =~ /^$b$/i ) {

You got a variation of 'perldoc -q "dos paths".

You are trying to match 'C:' followed by a non-word character, followed
by 'INDOWS' in the text 'C:\WINDOWS'.

See 'perldoc perlre'

jue


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

Date: Thu, 02 Oct 2008 00:01:48 +0300
From: Eric Pozharski <whynot@pozharski.name>
Subject: Re: Handling Huge Data
Message-Id: <s25dr5x6ke.ln2@carpet.zombinet>

Vishal G <v3gupta@gmail.com> wrote:
*SKIP*
> If you dont understand the above problem, dont worry....

You first...

> just tell me how to handle huge data which need to accessed frequently
> using least possible memory..

Free your mind of slurping (quite impossible if you came from world
where cycles are cheap, memory is cheap, disks are cheap etc.).  Then
use C<use DBI> (I prefer B<DBD::SQLite>, it's fscking fast).

p.s.  And a piece of advice.  If you're not going to show your code that
"clearly exhibits your problem" -- don't wait for help here.

-- 
Torvalds' goal for Linux is very simple: World Domination


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

Date: Wed, 1 Oct 2008 22:03:12 -0700 (PDT)
From: Vishal G <v3gupta@gmail.com>
Subject: Re: Handling Huge Data
Message-Id: <0c499982-f100-490b-a22a-884039a0253a@x35g2000hsb.googlegroups.com>

Hello Guys,

Thanks for your advice and sorry for being so vague...

In simple words if I have this code...

my $unitlength = 3;
my $dnaLength = 100000000;

my $A = sprintf("%3d", 0) x $dnaLength;
my $C = sprintf("%3d", 0) x $dnaLength;
my $G = sprintf("%3d", 0) x $dnaLength;
my $T = sprintf("%3d", 0) x $dnaLength;
my $I = sprintf("%3d", 0) x $dnaLength;

# Assign quality information of DNA
print "DNA Processing";
my ($num, $qual);
for (my $i = 0; $i < $dnaLength; $i++) {
    $num = int(rand(5)) + 1;
    $qual = int(rand(99)) + 1;

    if ($num == 1) {
        # Base A at position $i with base quality $qual
        substr($A, $i * $unitlength, $unitlength, sprintf("%$
{unitlength}d", $qual));
    } elsif ($num == 2) {
        substr($C, $i * $unitlength, $unitlength, sprintf("%$
{unitlength}d", $qual));
    } elsif ($num == 3) {
        substr($G, $i * $unitlength, $unitlength, sprintf("%$
{unitlength}d", $qual));
    } elsif ($num == 4) {
        substr($T, $i * $unitlength, $unitlength, sprintf("%$
{unitlength}d", $qual));
    } elsif ($num == 5) {
        substr($I, $i * $unitlength, $unitlength, sprintf("%$
{unitlength}d", $qual));
    } else {
    }
}

print "Member Processing\n";
my ($start, $stop);
for (my $j = 0; $j < 50000; $j++) {
    # Start and Stop of memeber with respect to DNA
    $start = int(rand($dnaLength - 2000)) + 1; # Member start with
respect to DNA
    $stop = $dnaLength; # Finish at end

    for (my $i = $start; $i <= $stop; $i++) {
        $num = int(rand(5)) + 1;
        $qual = int(rand(99)) + 1;
        if ($num == 1) {
            $qual = $qual + int( substr($A, $i * $unitlength,
$unitlength) );
            substr($A, $i * $unitlength, $unitlength, sprintf("%$
{unitlength}d", $qual));
        } elsif ($num == 2) {
            $qual = $qual + int( substr($C, $i * $unitlength,
$unitlength) );
            substr($C, $i * $unitlength, $unitlength, sprintf("%$
{unitlength}d", $qual));
        } elsif ($num == 3) {
            $qual = $qual + int( substr($G, $i * $unitlength,
$unitlength) );
            substr($G, $i * $unitlength, $unitlength, sprintf("%$
{unitlength}d", $qual));
        } elsif ($num == 4) {
            $qual = $qual + int( substr($T, $i * $unitlength,
$unitlength) );
            substr($T, $i * $unitlength, $unitlength, sprintf("%$
{unitlength}d", $qual));
        } elsif ($num == 5) {
            $qual = $qual + int( substr($I, $i * $unitlength,
$unitlength) );
            substr($I, $i * $unitlength, $unitlength, sprintf("%$
{unitlength}d", $qual));
        } else {
        }
    }
}

I ran this code and it consumes around 3.0 GB of memory...

I have also ran this same code using Hash (%A, %C,....) (8.0+ GB) and
with Array (5.0+ GB)

Is there any other way to store the information using less memory.

Thanks




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

Date: Thu, 02 Oct 2008 05:58:18 -0700
From: "John W. Krahn" <someone@example.com>
Subject: Re: Handling Huge Data
Message-Id: <_pZEk.3778$eZ6.1353@newsfe14.iad>

Vishal G wrote:
> Hello Guys,
> 
> Thanks for your advice and sorry for being so vague...
> 
> In simple words if I have this code...
> 
> my $unitlength = 3;
> my $dnaLength = 100000000;
> 
> my $A = sprintf("%3d", 0) x $dnaLength;
> my $C = sprintf("%3d", 0) x $dnaLength;
> my $G = sprintf("%3d", 0) x $dnaLength;
> my $T = sprintf("%3d", 0) x $dnaLength;
> my $I = sprintf("%3d", 0) x $dnaLength;

Why not just:

my $A = '000' x $dnaLength;
my $C = '000' x $dnaLength;
my $G = '000' x $dnaLength;
my $T = '000' x $dnaLength;
my $I = '000' x $dnaLength;

Or even:

my $A = my $C = my $G = my $T = my $I = '000' x $dnaLength;


> # Assign quality information of DNA
> print "DNA Processing";
> my ($num, $qual);
> for (my $i = 0; $i < $dnaLength; $i++) {
>     $num = int(rand(5)) + 1;
>     $qual = int(rand(99)) + 1;
> 
>     if ($num == 1) {
>         # Base A at position $i with base quality $qual
>         substr($A, $i * $unitlength, $unitlength, sprintf("%$
> {unitlength}d", $qual));
>     } elsif ($num == 2) {
>         substr($C, $i * $unitlength, $unitlength, sprintf("%$
> {unitlength}d", $qual));
>     } elsif ($num == 3) {
>         substr($G, $i * $unitlength, $unitlength, sprintf("%$
> {unitlength}d", $qual));
>     } elsif ($num == 4) {
>         substr($T, $i * $unitlength, $unitlength, sprintf("%$
> {unitlength}d", $qual));
>     } elsif ($num == 5) {
>         substr($I, $i * $unitlength, $unitlength, sprintf("%$
> {unitlength}d", $qual));
>     } else {
>     }
> }

If you wanted, you *could* write that loop as:

for my $i ( 0 .. $dnaLength - 1 ) {
     substr ${\( $A, $C, $G, $T, $I )[ rand 5 ]}, $i * $unitlength, 
$unitlength, sprintf '%*d', $unitlength, 1 + int rand 99;
     }


> print "Member Processing\n";
> my ($start, $stop);
> for (my $j = 0; $j < 50000; $j++) {
>     # Start and Stop of memeber with respect to DNA
>     $start = int(rand($dnaLength - 2000)) + 1; # Member start with
> respect to DNA
>     $stop = $dnaLength; # Finish at end
> 
>     for (my $i = $start; $i <= $stop; $i++) {
>         $num = int(rand(5)) + 1;
>         $qual = int(rand(99)) + 1;
>         if ($num == 1) {
>             $qual = $qual + int( substr($A, $i * $unitlength,
> $unitlength) );
>             substr($A, $i * $unitlength, $unitlength, sprintf("%$
> {unitlength}d", $qual));
>         } elsif ($num == 2) {
>             $qual = $qual + int( substr($C, $i * $unitlength,
> $unitlength) );
>             substr($C, $i * $unitlength, $unitlength, sprintf("%$
> {unitlength}d", $qual));
>         } elsif ($num == 3) {
>             $qual = $qual + int( substr($G, $i * $unitlength,
> $unitlength) );
>             substr($G, $i * $unitlength, $unitlength, sprintf("%$
> {unitlength}d", $qual));
>         } elsif ($num == 4) {
>             $qual = $qual + int( substr($T, $i * $unitlength,
> $unitlength) );
>             substr($T, $i * $unitlength, $unitlength, sprintf("%$
> {unitlength}d", $qual));
>         } elsif ($num == 5) {
>             $qual = $qual + int( substr($I, $i * $unitlength,
> $unitlength) );
>             substr($I, $i * $unitlength, $unitlength, sprintf("%$
> {unitlength}d", $qual));
>         } else {
>         }
>     }
> }
> 
> I ran this code and it consumes around 3.0 GB of memory...

You are running out of memory because when you add the numbers together 
they are sometimes longer than $unitlength which causes the strings to 
expand.

$ perl -le'printf "%3d\n", 900 + 800'
1700


> I have also ran this same code using Hash (%A, %C,....) (8.0+ GB) and
> with Array (5.0+ GB)
> 
> Is there any other way to store the information using less memory.

If you want to keep the substrings at only $unitlength you could use 
either modulus:

$ perl -le'printf "%3d\n", ( 900 + 800 ) % 1000'
700

Or a truncating sprintf format:

$ perl -le'printf "%3.3s\n", 900 + 800'
170



John
-- 
Perl isn't a toolbox, but a small machine shop where you
can special-order certain sorts of tools at low cost and
in short order.                            -- Larry Wall


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

Date: Thu, 2 Oct 2008 04:42:23 GMT
From: merlyn@stonehenge.com (Randal Schwartz)
Subject: new CPAN modules on Thu Oct  2 2008
Message-Id: <K83H2n.vMt@zorch.sf-bay.org>

The following modules have recently been added to or updated in the
Comprehensive Perl Archive Network (CPAN).  You can install them using the
instructions in the 'perlmodinstall' page included with your Perl
distribution.

Algorithm-Cluster-1.43
http://search.cpan.org/~mdehoon/Algorithm-Cluster-1.43/
Perl interface to the C Clustering Library. 
----
B-Hooks-OP-Check-0.01
http://search.cpan.org/~flora/B-Hooks-OP-Check-0.01/
Wrap OP check callbacks 
----
CPAN-Testers-WWW-Statistics-0.51
http://search.cpan.org/~barbie/CPAN-Testers-WWW-Statistics-0.51/
CPAN Testers Statistics website. 
----
CPAN-WWW-Testers-Generator-0.30
http://search.cpan.org/~barbie/CPAN-WWW-Testers-Generator-0.30/
Download and summarize CPAN Testers data 
----
Catalyst-Authentication-Store-Tangram-0.003
http://search.cpan.org/~bobtfish/Catalyst-Authentication-Store-Tangram-0.003/
A storage class for Catalyst authentication from a class stored in Tangram 
----
Chart-Clicker-2.12
http://search.cpan.org/~gphat/Chart-Clicker-2.12/
Powerful, extensible charting. 
----
DBIx-Compare-1.3d
http://search.cpan.org/~cjones/DBIx-Compare-1.3d/
Compare database content 
----
Data-Valve-0.00009
http://search.cpan.org/~dmaki/Data-Valve-0.00009/
Throttle Your Data 
----
Devel-NYTProf-2.04_RC1
http://search.cpan.org/~timb/Devel-NYTProf-2.04_RC1/
Powerful feature-rich perl source code profiler 
----
File-Path-2.06_05
http://search.cpan.org/~dland/File-Path-2.06_05/
Create or remove directory trees 
----
Flickr-API-1.01
http://search.cpan.org/~iamcal/Flickr-API-1.01/
Perl interface to the Flickr API 
----
GD-SVG-0.32
http://search.cpan.org/~twh/GD-SVG-0.32/
Seamlessly enable SVG output from scripts written using GD 
----
Geometry-Primitive-0.13
http://search.cpan.org/~gphat/Geometry-Primitive-0.13/
Primitive Geometry Entities 
----
Graphics-Color-0.16
http://search.cpan.org/~gphat/Graphics-Color-0.16/
Device and library agnostic color spaces. 
----
Graphics-Primitive-0.34
http://search.cpan.org/~gphat/Graphics-Primitive-0.34/
Device and library agnostic graphic primitives 
----
Graphics-Primitive-Driver-Cairo-0.29
http://search.cpan.org/~gphat/Graphics-Primitive-Driver-Cairo-0.29/
Cairo backend for Graphics::Primitive 
----
HTTP-Server-Multiplex-0.11
http://search.cpan.org/~markov/HTTP-Server-Multiplex-0.11/
single process multi serve HTTP daemon 
----
JE-0.029
http://search.cpan.org/~sprout/JE-0.029/
Pure-Perl ECMAScript (JavaScript) Engine 
----
LEOCHARRE-Dir-1.05
http://search.cpan.org/~leocharre/LEOCHARRE-Dir-1.05/
subs for dirs 
----
LaBrea-Tarpit-1.35
http://search.cpan.org/~miker/LaBrea-Tarpit-1.35/
Utilities and web displays for Tom Liston's LaBrea scanner/worm disruptor 
----
LaTeX-Table-0.9.4
http://search.cpan.org/~limaone/LaTeX-Table-0.9.4/
Perl extension for the automatic generation of LaTeX tables. 
----
Layout-Manager-0.20
http://search.cpan.org/~gphat/Layout-Manager-0.20/
2D Layout Management 
----
Module-Collect-0.03
http://search.cpan.org/~yappo/Module-Collect-0.03/
module files are collected from some directories 
----
Module-Setup-0.01
http://search.cpan.org/~yappo/Module-Setup-0.01/
a simple module maker "yet another Module::Start(?:er)?" 
----
MooseX-AttributeDefaults-0.02
http://search.cpan.org/~frodwith/MooseX-AttributeDefaults-0.02/
Role to provide default option for your attribute metaclasses 
----
MooseX-KeyedMutex-0.00003
http://search.cpan.org/~dmaki/MooseX-KeyedMutex-0.00003/
Role To Add KeyedMutex 
----
MooseX-Method-Signatures-0.04
http://search.cpan.org/~flora/MooseX-Method-Signatures-0.04/
Method declarations with type constraints and no source filter 
----
Nagios-Plugin-LDAP-0.03
http://search.cpan.org/~gbarr/Nagios-Plugin-LDAP-0.03/
Nagios plugin to observe LDAP. 
----
Nagios-Plugin-LDAP-0.04
http://search.cpan.org/~gbarr/Nagios-Plugin-LDAP-0.04/
Nagios plugin to observe LDAP. 
----
POE-Component-Server-IRC-1.34
http://search.cpan.org/~bingos/POE-Component-Server-IRC-1.34/
A fully event-driven networkable IRC server daemon module. 
----
Parse-Eyapp-1.113
http://search.cpan.org/~casiano/Parse-Eyapp-1.113/
Extensions for Parse::Yapp 
----
Perl6-Signature-0.03
http://search.cpan.org/~gaal/Perl6-Signature-0.03/
Parse, query, and pretty-print Perl 6 signatures 
----
Pod-2-DocBook-0.02_03
http://search.cpan.org/~jkutej/Pod-2-DocBook-0.02_03/
Convert Pod data to DocBook SGML 
----
RDF-Simple-0.301
http://search.cpan.org/~mthurn/RDF-Simple-0.301/
read and write RDF without complication 
----
RPC-Serialized-0.0701
http://search.cpan.org/~oliver/RPC-Serialized-0.0701/
Subroutine calls over the network using common serialization 
----
STAFService-0.23
http://search.cpan.org/~semuelf/STAFService-0.23/
Perl extension for writing STAF Services easily. 
----
Sub-ParamLoader-0.03
http://search.cpan.org/~schoejo/Sub-ParamLoader-0.03/
Map named argument list into a hash modified according to a rule 
----
Sys-Statistics-Linux-0.41
http://search.cpan.org/~bloonix/Sys-Statistics-Linux-0.41/
Front-end module to collect system statistics 
----
SystemPerl-1.300
http://search.cpan.org/~wsnyder/SystemPerl-1.300/
SystemPerl Language Extension to SystemC 
----
Template-Plugin-TwoStage-0.01
http://search.cpan.org/~alexk/Template-Plugin-TwoStage-0.01/
two stage processing of template blocks with first stage caching 
----
Test-UseAllModules-0.09_01
http://search.cpan.org/~ishigaki/Test-UseAllModules-0.09_01/
do use_ok() for all the MANIFESTed modules 
----
Text-Lorem-More-0.13
http://search.cpan.org/~rkrimen/Text-Lorem-More-0.13/
Generate formatted nonsense using random Latin words. 
----
Text-Phonetic-1.06
http://search.cpan.org/~maros/Text-Phonetic-1.06/
A module implementing various phonetic algorithms 
----
Text-Template-Simple-0.54_14
http://search.cpan.org/~burak/Text-Template-Simple-0.54_14/
Simple text template engine 
----
Text-Template-Simple-0.54_15
http://search.cpan.org/~burak/Text-Template-Simple-0.54_15/
Simple text template engine 
----
Text-Template-Simple-0.54_16
http://search.cpan.org/~burak/Text-Template-Simple-0.54_16/
Simple text template engine 
----
Tk-804.028_500
http://search.cpan.org/~srezic/Tk-804.028_500/
a graphical user interface toolkit for Perl 
----
Tk-TextVi-0.0143
http://search.cpan.org/~jstrom/Tk-TextVi-0.0143/
Tk::Text widget with Vi-like commands 
----
WWW-Myspace-0.88
http://search.cpan.org/~stevenc/WWW-Myspace-0.88/
Access MySpace.com profile information from Perl 
----
XML-Compile-0.95
http://search.cpan.org/~markov/XML-Compile-0.95/
Compilation based XML processing 
----
XML-Compile-Tester-0.03
http://search.cpan.org/~markov/XML-Compile-Tester-0.03/
support XML::Compile related regression testing 
----
XML-Compile-Tester-0.04
http://search.cpan.org/~markov/XML-Compile-Tester-0.04/
support XML::Compile related regression testing 
----
XML-Parser-Lite-Tree-0.07
http://search.cpan.org/~iamcal/XML-Parser-Lite-Tree-0.07/
Lightweight XML tree builder 
----
XML-Parser-Lite-Tree-0.08
http://search.cpan.org/~iamcal/XML-Parser-Lite-Tree-0.08/
Lightweight XML tree builder 
----
XTerm-Conf-0.05
http://search.cpan.org/~srezic/XTerm-Conf-0.05/
change configuration of a running xterm 


If you're an author of one of these modules, please submit a detailed
announcement to comp.lang.perl.announce, and we'll pass it along.

This message was generated by a Perl program described in my Linux
Magazine column, which can be found on-line (along with more than
200 other freely available past column articles) at
  http://www.stonehenge.com/merlyn/LinuxMag/col82.html

print "Just another Perl hacker," # the original

--
Randal L. Schwartz - Stonehenge Consulting Services, Inc. - +1 503 777 0095
<merlyn@stonehenge.com> <URL:http://www.stonehenge.com/merlyn/>
Smalltalk/Perl/Unix consulting, Technical writing, Comedy, etc. etc.
See http://methodsandmessages.vox.com/ for Smalltalk and Seaside discussion


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

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:

#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: due to the current flood of worm email banging on ruby, the smtp
server on ruby has been shut off until further notice. 

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 V11 Issue 1894
***************************************


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