[31236] in Perl-Users-Digest
Perl-Users Digest, Issue: 2481 Volume: 11
daemon@ATHENA.MIT.EDU (Perl-Users Digest)
Wed Jun 17 16:09:44 2009
Date: Wed, 17 Jun 2009 13:09:09 -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 Wed, 17 Jun 2009 Volume: 11 Number: 2481
Today's topics:
bytes over network <ankugoe7@gmail.com>
Re: bytes over network sln@netherlands.com
Re: bytes over network <ankugoe7@gmail.com>
Re: cannot solve a memory leak <scottalorda@libello.com>
Re: Debugging a Perl(SNMP-NPAdmin) module - Not able to <smallpond@juno.com>
Re: Debugging a Perl(SNMP-NPAdmin) module - Not able to <tadmc@seesig.invalid>
Debugging a Perl(SNMP-NPAdmin) module - Not able to und <dkarthik@gmail.com>
get lots of traffic free for your site <adnanhameed750@gmail.com>
Looking for a perl job (or c/c++) or any job still !! sln@netherlands.com
new CPAN modules on Wed Jun 17 2009 (Randal Schwartz)
Digest Administrivia (Last modified: 6 Apr 01) (Perl-Users-Digest Admin)
----------------------------------------------------------------------
Date: Tue, 16 Jun 2009 23:02:38 -0700 (PDT)
From: "ankugoe7@gmail.com" <ankugoe7@gmail.com>
Subject: bytes over network
Message-Id: <c0e06199-185f-4435-8420-037c773e2ac8@q16g2000yqg.googlegroups.com>
Hi All,
I am sending some data over the network using IO::Socket::INET and
when I print the length of scalar it prints as 1464
my $size = length($send_buf);
But on the other side I see data coming in size of 4096 (from
tcpdump).But I want to send only 1464 bytes only.Kindly help
Thanks
Ankur Goel
------------------------------
Date: Tue, 16 Jun 2009 23:21:24 -0700
From: sln@netherlands.com
Subject: Re: bytes over network
Message-Id: <bp2h3511ar7ne4fjas8d52aggss8jesnqt@4ax.com>
On Tue, 16 Jun 2009 23:02:38 -0700 (PDT), "ankugoe7@gmail.com" <ankugoe7@gmail.com> wrote:
>Hi All,
> I am sending some data over the network using IO::Socket::INET and
>when I print the length of scalar it prints as 1464
>my $size = length($send_buf);
>
>But on the other side I see data coming in size of 4096 (from
>tcpdump).But I want to send only 1464 bytes only.Kindly help
>
>Thanks
>Ankur Goel
Can you please read the doc's for that module and then post
your code. Nobody here is a mind reader!
-sln
------------------------------
Date: Wed, 17 Jun 2009 03:30:26 -0700 (PDT)
From: ankur <ankugoe7@gmail.com>
Subject: Re: bytes over network
Message-Id: <f7ffc9ff-4fac-401f-94d7-ebb5e47aaa38@b9g2000yqm.googlegroups.com>
use IO::Socket;
use bytes;
use Time::HiRes qw(usleep nanosleep);
my $nfcapd_file = shift;
my $config_file = shift;
my $ip_addr = shift;
my $port_num = shift;
my $sock = IO::Socket::INET->new(PeerAddr => "$ip_addr",
PeerPort => "$port_num",
Proto => 'udp');
`cp $nfcapd_file /tmp/$$.netflow`;
open NFCAP,"<$nfcapd_file" || die "Cannot open nfcapd file\n";
open TMPCAP ,"</tmp/$$.netflow"|| die "Cannot open tmp file\n";
binmode NFCAP;
binmode TMPCAP;
my ($buf, $data, $n);
while (($n = read NFCAP, $data,24 ) != 0)
{
my $bytes = 24;
my ($version,$records_num,$sys_uptime,$unix_sec,
$unix_nsec,$flow_seen,$engine_type,$engine_id,
$sample_interval) = unpack("n n N N N N C C n",$data);
print "$version,$records_num\n";
my $count = 0;
while ($count < $records_num)
{
$n = read NFCAP, $data,48;
$bytes +=48;
my ($src_addr,$dst_addr,$next_hop,$snmp_input,
$snmp_output,$packets_in_flow,$layer3_packets,
$sys_up_time,$sys_up_last,$src_port,$dst_port,
$unused_byte,$tcp_flag,$prot,$tos,$src_as,$dst_as,
$src_mask,$dst_mask,$pad2) = unpack("N N N n n
N N N N n n C C C C n n C C n",$data);
$count++;
#print "$src_addr\n";
}
my $send_buf;
$n = read TMPCAP,$send_buf,$bytes;
my $pack_data = pack("a$bytes",$send_buf);
print $sock $pack_data;
usleep(10000);
}
------------------------------
Date: Wed, 17 Jun 2009 02:08:45 -0700 (PDT)
From: =?ISO-8859-1?Q?S=E9bastien_Cottalorda?= <scottalorda@libello.com>
Subject: Re: cannot solve a memory leak
Message-Id: <bcbe22f6-6224-4699-b699-0d343e63b6af@h2g2000yqg.googlegroups.com>
On 16 juin, 20:58, s...@netherlands.com wrote:
> On Tue, 16 Jun 2009 01:33:50 -0700 (PDT), S=E9bastien Cottalorda <scottal=
o...@libello.com> wrote:
> >Hi all,
> >I develop an program based on a module names 'SHM' based on
> >IPC::Shareable module.
> >I'm under Fedora core 9 (kernel 2.6.27.21-78.2.41.fc9.i686) =A0 with
> >Perl 5.10.0
>
[snip]
> >------------------------------------------------------------------------=
---------------------------------
> >my program base on the 'SHM' module does this
> >[snip]
> >my $memCmd =3D 'ps axfv | grep -P "^\s{0,}'.$$.'" | grep -v grep ';
> >print "MEMSize (BEFORE)=3D". `$memCmd` ;
> >if ($SEGMENT->shlock(LOCK_SH)){
> > =A0 =A0eval {
> > =A0 =A0 =A0 =A0$pano_SHM =A0 =3D $SEGMENT->get_hash({ type =3D> 'pannea=
u', primary
> >=3D> $control });
> > =A0 =A0};
> > =A0 =A0if ($@){
> > =A0 =A0 =A0 =A0[snip]
> > =A0 =A0}
> > =A0 =A0print "MEMSize (AFTER)=3D". `$memCmd` ;
> >}
> >else {
> > =A0 =A0print "unable to get a lock on SHM\n";
> >}
>
> >I run several time (5 times), in parallel, the same program.
> >I have then concurrent access to the memory segment.
> >On concurrent access, one process get the error :
> >"Munged shared memory segment (size exceeded?) into shm segment"
> >I note then that the virtual memory grow till 1,8 Go for the process
> >on which occured the access problem.
> >I trace this:
>
> >MEMSize (BEFORE)=3D 5080 pts/7 =A0 =A0S+ =A0 =A017:47 =A0 =A0 =A00 =A0 =
=A0 3 13776 =A08992
> >0.2 =A0 =A0 =A0 =A0 =A0\_ PK52
> >"Munged shared memory segment (size exceeded?) into shm segment" at
> >SHM line 537
> >MEMSize (AFTER)=3D 5080 pts/7 =A0 =A0S+ =A0 =A017:47 =A0 =A0 =A00 =A0 =
=A0 3 1849624 9832
> >0.2 =A0 =A0 =A0 =A0 =A0\_ PK52
>
> I'm not sure of what version your using. The latest on CPAN seems to
> be version 0.60 @ 2001, that does sub-ties on references.
>
Exact, I've that version.
> It looks in your usage like you have derived from IPC::Shareable.
> Also, there might be a conflict with Perl 5.10, I don't know.
neither do I :-)
> There is no indication how you instantiated your derived class
> but you can't even get an object without doing
> =A0 tie $variable, 'IPC::Shareable', 'data', \%options;
> somewhere in your constructor.
That's correct, I instantiate my class using
sub new {
my $class =3D shift;
....
my $self =3D (
_handle =3D> undef,
_config =3D> undef,
_segments =3D> undef,
_data =3D> undef,
);
$self->{_handle} =3D tie %{$self->{_data}}, 'IPC::Shareable',
'SUPE', {%options};
bless $self, $class;
return $self;
}
> =A0 you> I have then concurrent access to the memory segment.
>
> I don't know how that is true from your example. I don't actually
> see you using 'tied' type acess to that variable.
I say that the get_hash access is part of a while(1)/sleep loop.
So I run several times, in parallel, the same program that access to
the same shared segment.
I've then concurrent access.
All the system works well for several hours (even several weeks) since
a conflict occurs.
At hat time, no program crash because I 'eval' every sensitive
operation.
The entire system goes on running without any problems.
The only thing is that the program that have encountered the conflict
see his virtual memory grows up to 1.8 Go
But everything goes on running even the entire OS.
In worst time, I got 4/5 programs that see their virtual memory grows
up to 1.8 Go (I've a 4 Go RAM on my server)
> Instead, you are reading from a temporary variable in the objects
> hash: =A0{_data}, used to read/write to shared memory.
Yes, I've separed read access (get_hash) and write access (set_hash)
to the shared segment for one reasons:
1- I need to share multidimensional hash (3 levels) and
IPC::Shareable, on the OS, creates me a lot of share segments in that
configuration (more that 9 segments created for only one hash of hash
of hash) --> So I implement a kind of Hash::Flatten method. I
transform a multidimensional hash into a only one dimension hash.
That's why I need to separate get access and write access because I
need to process several things before thawing of freezing.
2- I note that it's preferable to copy the shared hash before
process it for performance reason (I note then that if I lock the
segment, the IPC::Shareable module does it automatically) --> never
mind, I'll remove my 'very-intelligent-pseudo-optimization' later.
> But you are only reading from from shared memory with the lock.
> You never unlock it, which would write it out:
>
> =A0 =A0 =A0 =A0 locking reads shared memory to _data:
> =A0 =A0 =A0 =A0 $self->{_data} =3D _thaw($self->{_shm})
>
> =A0 =A0 =A0 =A0 Unlocking writes _data to shared memory:
> =A0 =A0 =A0 =A0 _freeze($self->{_shm} =3D> $self->{_data}
Of course I lock/unlock the segment, I do not use directly _freeze and
_thaw.
I forgot to write that on the code example, here is the correct one :
if ($SEGMENT->shlock(LOCK_SH)){
eval {
$pano_SHM =3D $SEGMENT->get_hash({ type =3D> 'panneau', primary
=3D> $control });
};
if ($@){
$SEGMENT->shunlock();
[snip]
}
else {
$SEGMENT->shunlock();
[snip]
}
print "MEMSize (AFTER)=3D". `$memCmd` ;
}
else {
print "unable to get a lock on SHM\n";
}
> Unfortunately, by doing this directly, you are circumventing the 'tied' m=
echanisms
> of update with its magic, and sub-tie (_mg_tie).
That's not the case.
> There is a debug mechanism if you want to use it:
>
> =A0 =A0 =A0 =A0 use constant DEBUGGING =A0 =A0 =3D> ($ENV{SHAREABLE_DEBUG=
} or 0);
> =A0 =A0 =A0 =A0 _debug() if DEBUGGING;
I've already try that debug mode, but it is very verbose and the
entire system can run for several days (even weeks) without problems.
I'll have several Gigabits of log file ...
The thing I do not understand is why the virtual memory grows up to
1.8Go even if I 'eval'uate every sensitive operation.
No programs crashes.
I try to use every time 'my' variables to let the garbage collector do
his job when it goes of the scope.
When I encoutered concurrent access I note that :
SHM module crash like this:
---------------------------------------------------------------------------=
------------------
my %datas =3D ();
eval {
%datas =3D %{$this->{_data}};
};
if ($@){
croak "GET: Unable to get ".$hashref->{type}."|".$hashref->
{primary}." segment key=3D".$hashref->{key}." : $@"; # ***** CRASH HERE
*****
}
else {
# process the %datas hash
}
undef %datas;
---------------------------------------------------------------------------=
------------------
May be the garbage collector do not claim the memory occupied by
%datas in that case ?
I don't know.
If the program do not work, I'll look for somewhere else, but I'm
troubled by the fact that the system works perfectly for several days.
Sebastien
------------------------------
Date: Wed, 17 Jun 2009 11:28:40 -0700 (PDT)
From: smallpond <smallpond@juno.com>
Subject: Re: Debugging a Perl(SNMP-NPAdmin) module - Not able to understand few LOC
Message-Id: <cbaa83d3-1316-42c7-b652-7547783bf8cc@37g2000yqp.googlegroups.com>
On Jun 17, 11:43=A0am, karthikd <dkart...@gmail.com> wrote:
> Hello All,
>
> I have some basic knowledge of Perl and I am troubleshooting a Perl
> code(it is perl-SNMP-NPAdmin perl module)to debug a particular
> problem.
>
> I am not able to understand some part of the code (which is using some
> hashes etc.).
>
> The following snippet of code is used in NPAdmin.pm file:
>
> sub model
> {
> #warn "model";
> =A0 my $self=3D shift;
>
> =A0 for ( $self->vendor()->{vendor} )
> =A0 {
> =A0 =A0 =A0 .....snipped code....
>
> =A0 =A0 /^HP$/ && do {
> =A0 =A0 =A0 =A0 my $str=3D $self->{Neon}->hp_gdStatusId()->{gdStatusId};
> =A0 =A0 =A0 =A0 print "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX: $str \n";
> =A0 =A0 =A0 =A0 $self->{model}=3D ( $str =3D~ /;(?:MODEL|MDL):\s*(.+?)\s*=
;/ )[0];
> =A0 =A0 =A0 =A0 last;
> =A0 =A0 =A0 =A0 };
>
> =A0 =A0 =A0 .....snipped code ...
>
> =A0 =A0}
>
> =A0 =A0 =A0return { model =3D> $self->{model} };
>
> }
>
> I added the print statement to know what value is stored in $str.
> While running the module, =A0we found that $str value is empty.
>
> My query is what the line below:
>
> =A0 =A0 =A0my $str=3D $self->{Neon}->hp_gdStatusId()->{gdStatusId};
>
> does really and how to troubleshoot/debug it in a failure case.
>
> hp_gdStatusId seems to be a key in a hash called %list_map defined in
> another perl module called in Neon.pm
>
hp_gdStatusId is a method call. Note the '()'
------------------------------
Date: Wed, 17 Jun 2009 14:35:46 -0500
From: Tad J McClellan <tadmc@seesig.invalid>
Subject: Re: Debugging a Perl(SNMP-NPAdmin) module - Not able to understand few LOC
Message-Id: <slrnh3ih8r.5ae.tadmc@tadmc30.sbcglobal.net>
karthikd <dkarthik@gmail.com> wrote:
> /^HP$/ && do {
> my $str= $self->{Neon}->hp_gdStatusId()->{gdStatusId};
> print "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX: $str \n";
> I added the print statement to know what value is stored in $str.
> While running the module, we found that $str value is empty.
Did you have warnings enabled?
It would help to know if it really contains the empty string
versus containing undef.
> My query is what the line below:
>
> my $str= $self->{Neon}->hp_gdStatusId()->{gdStatusId};
>
> does really and how to troubleshoot/debug it in a failure case.
If it is really the empty string, then it would seem that
the error was in storing the value rather than retrieving it.
It it is really undef, then you can "walk" the chain to figure out
where it was broken:
warn "self\n" unless defined $self;
warn "Neon\n" unless defined $self->{Neon};
warn "hp_gdStatusId\n" unless defined $self->{Neon}->hp_gdStatusId();
warn "gdStatusId\n" unless defined $str;
> hp_gdStatusId seems to be a key in a hash called %list_map defined in
> another perl module called in Neon.pm
>
> %list_map= (
> # sub name oid list
> # -------- --------
> hp_npCfgSource => [ 0x0,
> [ q:
>
> [ '.iso.org.dod.internet.private.enterprises.hp.nm.interface.npCard.npCfg.npCfgSource',
> 0],
> : ],
> ],
> hp_gdStatusId => [ 0x0,
> [ q:
>
> [ '.iso.org.dod.internet.private.enterprises.hp.nm.system.net-
> peripheral.net-printer.generalDeviceStatus.gdStatusId', 0]
> : ],
> ],
> );
use Data::Dumper to see what complex data structures look like:
use Data::Dumper;
warn Dumper \%list_map;
--
Tad McClellan
email: perl -le "print scalar reverse qq/moc.noitatibaher\100cmdat/"
------------------------------
Date: Wed, 17 Jun 2009 08:43:29 -0700 (PDT)
From: karthikd <dkarthik@gmail.com>
Subject: Debugging a Perl(SNMP-NPAdmin) module - Not able to understand few LOC
Message-Id: <b10361b6-6d85-4576-8769-6c394fd33909@n21g2000vba.googlegroups.com>
Hello All,
I have some basic knowledge of Perl and I am troubleshooting a Perl
code(it is perl-SNMP-NPAdmin perl module)to debug a particular
problem.
I am not able to understand some part of the code (which is using some
hashes etc.).
The following snippet of code is used in NPAdmin.pm file:
sub model
{
#warn "model";
my $self= shift;
for ( $self->vendor()->{vendor} )
{
.....snipped code....
/^HP$/ && do {
my $str= $self->{Neon}->hp_gdStatusId()->{gdStatusId};
print "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX: $str \n";
$self->{model}= ( $str =~ /;(?:MODEL|MDL):\s*(.+?)\s*;/ )[0];
last;
};
.....snipped code ...
}
return { model => $self->{model} };
}
I added the print statement to know what value is stored in $str.
While running the module, we found that $str value is empty.
My query is what the line below:
my $str= $self->{Neon}->hp_gdStatusId()->{gdStatusId};
does really and how to troubleshoot/debug it in a failure case.
hp_gdStatusId seems to be a key in a hash called %list_map defined in
another perl module called in Neon.pm
%list_map= (
# sub name oid list
# -------- --------
hp_npCfgSource => [ 0x0,
[ q:
[ '.iso.org.dod.internet.private.enterprises.hp.nm.interface.npCard.npCfg.npCfgSource',
0],
: ],
],
hp_gdStatusId => [ 0x0,
[ q:
[ '.iso.org.dod.internet.private.enterprises.hp.nm.system.net-
peripheral.net-printer.generalDeviceStatus.gdStatusId', 0]
: ],
],
);
and list_map is used like this in a subroutine called AUTOLOAD defined
in Neon.pm
sub AUTOLOAD
{
<code snipped >
elsif ( defined $list_map{$autoload} )
{
my @map= @{$list_map{$autoload}};
$sub= $list_code;
%tags= (
'##SUBNAME##' => $autoload,
'##MIBS##' => $map[0],
'##OIDLIST##' => @{$map[1]},
);
}
<code snipped>
}
Any help would be really appreciated.
Thanks & Regards,
Karthik
------------------------------
Date: Tue, 16 Jun 2009 22:38:38 -0700 (PDT)
From: adnan ji <adnanhameed750@gmail.com>
Subject: get lots of traffic free for your site
Message-Id: <0b20c5e4-dbdc-409b-879c-6bcf32ce291f@y9g2000yqg.googlegroups.com>
all time get lots of trrafic to your website free more visit
www.glu007.blogspot.com
------------------------------
Date: Tue, 16 Jun 2009 19:11:45 -0700
From: sln@netherlands.com
Subject: Looking for a perl job (or c/c++) or any job still !!
Message-Id: <agjg35lt26r6r4te68ban3jeq5e5eng2j3@4ax.com>
If I had a job, i probably wouldn't post here. But don't for a year now.
I like all the job descriptions, and the desperate CS resume's i've read,
throwing everything but the kitchen sink of 'technology' phrases (aka keywords)
into it.
I can't remember all that stuff. I don't write extremely well.
All i know is, when i'm paid to do something, i do it in spades.
I don't want to 'lie', i can't put on my resume "written 15 million lines of code",
it won't go into the database. I've written more, but I can't keep up with the
lies of resume acronyms and phrase hypes.
I hate to say this but, every employer i've worked for (almost) have trippled thier
value and the owners have sold out, this due to my meager code contributions.
I refuse to learn on my own anymore, had enough. I am a master at deciphering documentation,
and if wrong, doing fix ups to the code. How? I think MSDN started it didn't it?
Do I know all the elements to do anything? You betcha!! Will i do it without being paid?
Not an ice cubes chance in hell !!!
Tell that to the ologarthy.
-sln
------------------------------
Date: Wed, 17 Jun 2009 04:42:29 GMT
From: merlyn@stonehenge.com (Randal Schwartz)
Subject: new CPAN modules on Wed Jun 17 2009
Message-Id: <KLD92t.nuw@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.
AIX-SysInfo-1.1
http://search.cpan.org/~sleonov/AIX-SysInfo-1.1/
A Perl module for retrieving information about an AIX pSeries system
----
Archive-Zip-1.28
http://search.cpan.org/~adamk/Archive-Zip-1.28/
Provide an interface to ZIP archive files.
----
Audio-Scan-0.20
http://search.cpan.org/~agrundma/Audio-Scan-0.20/
XS parser for MP3, MP4, Ogg Vorbis, FLAC, ASF, WAV, AIFF, Musepack, Monkey's Audio
----
Catalyst-Model-DBIC-Schema-0.24
http://search.cpan.org/~mstrout/Catalyst-Model-DBIC-Schema-0.24/
DBIx::Class::Schema Model Class
----
Catalyst-Plugin-Session-0.23
http://search.cpan.org/~bobtfish/Catalyst-Plugin-Session-0.23/
Generic Session plugin - ties together server side storage and client side state required to maintain session data.
----
Catalyst-Plugin-Session-Store-FastMmap-0.11
http://search.cpan.org/~bobtfish/Catalyst-Plugin-Session-Store-FastMmap-0.11/
FastMmap session storage backend.
----
Class-MOP-0.86
http://search.cpan.org/~drolsky/Class-MOP-0.86/
A Meta Object Protocol for Perl 5
----
Clone-Closure-0.03
http://search.cpan.org/~bmorrow/Clone-Closure-0.03/
A clone that knows how to clone closures
----
Combine-4.003
http://search.cpan.org/~aardo/Combine-4.003/
Focused Web crawler framework
----
Devel-Declare-0.005006
http://search.cpan.org/~flora/Devel-Declare-0.005006/
Adding keywords to perl, in perl
----
Devel-IntelliPerl-0.02
http://search.cpan.org/~perler/Devel-IntelliPerl-0.02/
Auto-completion for Perl
----
Dist-Zilla-Plugin-ReadmeFromPod-0.04
http://search.cpan.org/~fayland/Dist-Zilla-Plugin-ReadmeFromPod-0.04/
Automatically convert POD to a README for Dist::Zilla
----
Email-Outlook-Message-0.906
http://search.cpan.org/~mvz/Email-Outlook-Message-0.906/
Read Outlook .msg files
----
Env-Sanctify-Auto-1.0.1
http://search.cpan.org/~frequency/Env-Sanctify-Auto-1.0.1/
Automatically clean up your %ENV
----
File-Lock-Multi-0.06
http://search.cpan.org/~crakrjack/File-Lock-Multi-0.06/
Lock files more than once
----
Grades-0.06
http://search.cpan.org/~drbean/Grades-0.06/
A collocation of homework, classwork and exams
----
Grid-Request-0.5
http://search.cpan.org/~victorf/Grid-Request-0.5/
An API for submitting jobs to a computational grid such as SGE or Condor.
----
HTML-Tested-ClassDBI-0.23
http://search.cpan.org/~bosu/HTML-Tested-ClassDBI-0.23/
Enhances HTML::Tested to work with Class::DBI
----
IPC-PerlSSH-0.11
http://search.cpan.org/~pevans/IPC-PerlSSH-0.11/
a class for executing remote perl code over an SSH link
----
Image-MetaData-JPEG-0.151
http://search.cpan.org/~bettelli/Image-MetaData-JPEG-0.151/
Perl extension for showing/modifying JPEG (meta)data.
----
Imager-ExifOrientation-0.01
http://search.cpan.org/~yappo/Imager-ExifOrientation-0.01/
A picture is rotated using Orientation of Exif
----
Imager-ExifOrientation-0.02
http://search.cpan.org/~yappo/Imager-ExifOrientation-0.02/
A picture is rotated using Orientation of Exif
----
Imager-Simple-0.010001
http://search.cpan.org/~graf/Imager-Simple-0.010001/
Make easy things easy with Imager
----
Jorge-Generator-0.02
http://search.cpan.org/~porta/Jorge-Generator-0.02/
The great new Jorge::Generator!
----
MQSeries-1.29
http://search.cpan.org/~hbiersma/MQSeries-1.29/
Perl extension for MQSeries support
----
MooseX-AlwaysCoerce-0.02
http://search.cpan.org/~rkitover/MooseX-AlwaysCoerce-0.02/
Automatically enable coercions for Moose attributes
----
MooseX-AlwaysCoerce-0.03
http://search.cpan.org/~rkitover/MooseX-AlwaysCoerce-0.03/
Automatically enable coercions for Moose attributes
----
MooseX-Meta-TypeConstraint-Intersection-0.01
http://search.cpan.org/~flora/MooseX-Meta-TypeConstraint-Intersection-0.01/
An intersection of Moose type constraints
----
Net-Frame-Dump-1.06
http://search.cpan.org/~gomor/Net-Frame-Dump-1.06/
tcpdump like implementation
----
Object-Simple-2.0007
http://search.cpan.org/~kimoto/Object-Simple-2.0007/
Light Weight Minimal Object System
----
Object-Simple-2.0008
http://search.cpan.org/~kimoto/Object-Simple-2.0008/
Light Weight Minimal Object System
----
POE-Component-Schedule-0.03
http://search.cpan.org/~dolmen/POE-Component-Schedule-0.03/
Schedule POE events using DateTime::Set iterators
----
Padre-Plugin-Debugger-0.3
http://search.cpan.org/~pmakholm/Padre-Plugin-Debugger-0.3/
Debug Perl code from Padre editor
----
Perl-Dist-WiX-0.184
http://search.cpan.org/~csjewell/Perl-Dist-WiX-0.184/
Experimental 4th generation Win32 Perl distribution builder
----
Sub-Contract-0.12
http://search.cpan.org/~erwan/Sub-Contract-0.12/
Pragmatic contract programming for Perl
----
Test-HTML-Form-0.02
http://search.cpan.org/~teejay/Test-HTML-Form-0.02/
HTML Testing and Value Extracting
----
Test-Warn-0.11_02
http://search.cpan.org/~chorny/Test-Warn-0.11_02/
Perl extension to test methods for warnings
----
Text-FixedWidth-0.07
http://search.cpan.org/~jhannah/Text-FixedWidth-0.07/
Easy OO manipulation of fixed width text files
----
Versionify-Dispatch-0.1.0
http://search.cpan.org/~cebjyre/Versionify-Dispatch-0.1.0/
A function dispatcher that respects versions, with fallback.
----
WWW-Mechanize-GZip-0.11
http://search.cpan.org/~pegi/WWW-Mechanize-GZip-0.11/
tries to fetch webpages with gzip-compression
----
cnutt-feed
http://search.cpan.org/~iderrick/cnutt-feed/
----
local-lib-1.004003
http://search.cpan.org/~apeiron/local-lib-1.004003/
create and use a local lib/ for perl modules with PERL5LIB
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 2481
***************************************