[31364] in Perl-Users-Digest

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

Perl-Users Digest, Issue: 2616 Volume: 11

daemon@ATHENA.MIT.EDU (Perl-Users Digest)
Wed Sep 30 00:09:41 2009

Date: Tue, 29 Sep 2009 21:09:06 -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           Tue, 29 Sep 2009     Volume: 11 Number: 2616

Today's topics:
    Re: CGI and UTF-8 <hhr-m@web.de>
    Re: CGI and UTF-8 <OJZGSRPBZVCX@spammotel.com>
    Re: CGI and UTF-8 <ben@morrow.me.uk>
    Re: CGI and UTF-8 <OJZGSRPBZVCX@spammotel.com>
    Re: CGI and UTF-8 <ben@morrow.me.uk>
    Re: controlling a process with perl <ben@morrow.me.uk>
    Re: controlling a process with perl <smallpond@juno.com>
    Re: each - iterator clash <bugbear@trim_papermule.co.uk_trim>
        eval DBI <user@example.net>
    Re: eval DBI <tadmc@seesig.invalid>
    Re: eval DBI <ben@morrow.me.uk>
        FAQ 4.58 How do I look up a hash element by value? <brian@theperlreview.com>
        FAQ 8.34 I {changed directory, modified my environment} <brian@theperlreview.com>
        FAQ 9.8 How do I fetch an HTML file? <brian@theperlreview.com>
        How to dump all (lexical) variables? <no.email@please.post>
    Re: How to dump all (lexical) variables? <peter@makholm.net>
    Re: How to dump all (lexical) variables? <no.email@please.post>
        switch case (/regex/) ... $1 - emtpy <petr.sezemsky@vrg.cz>
    Re: switch case (/regex/) ... $1 - emtpy <uri@StemSystems.com>
    Re: the solution to some of the world's big problems is <smallpond@juno.com>
        Digest Administrivia (Last modified: 6 Apr 01) (Perl-Users-Digest Admin)

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

Date: Tue, 29 Sep 2009 12:35:47 +0200
From: Helmut Richter <hhr-m@web.de>
Subject: Re: CGI and UTF-8
Message-Id: <Pine.LNX.4.64.0909291233410.4400@lxhri01.lrz.lrz-muenchen.de>

On Mon, 28 Sep 2009,  wrote:

> I assume you did set the META charset of the HTML page to UTF-8? Or did
> you let the browser guess about the encoding and then it returned the
> wrong encoding in the form response?

The problem is that the correct bytes arrive but are interpreted in a wrong
way.  Two answers in this thread show two different way to control that
interpretation. I'll try them out.

Thanks to all who have responded.

-- 
Helmut Richter


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

Date: Tue, 29 Sep 2009 21:32:58 +0200
From: "Jochen Lehmeier" <OJZGSRPBZVCX@spammotel.com>
Subject: Re: CGI and UTF-8
Message-Id: <op.u009w8kdmk9oye@frodo>

On Tue, 29 Sep 2009 00:46:54 +0200, Ben Morrow <ben@morrow.me.uk> wrote:

>> :encoding(utf8) does validate on output though, or doesn't it?
>
> What do you mean, 'validate'?

To raise an error or at least display some warning about it when it  
encounters
invalid bytes in an utf8 flagged string, like perl does at many other  
places.

> Perl strings are (logically) sequences of
> Unicode characters, and any sequence of Unicode characters can be
> represented in utf8. If you end up with a perl string with a corrupted
> internal representation you've got bigger problems than invalid output
> encoding.

Or I might simply be using some code which raises the utf8 flag on strings  
that
are not.

Example:

> cat test.pl
#!/usr/bin/perl -w

use strict;
use Encode;

my $validUTF8 = "\x{1010}";
my $bytes = encode("utf8",$validUTF8);   # e1 80 90
my $invalidUTF8 = substr($bytes,0,length($bytes)-1);  #  e1 80

open(TMP,">invalidutf8.txt") or die;
print TMP $invalidUTF8;
close TMP;

open(TMP,"<invalidutf8.txt") or die;
binmode TMP,":utf8";
my $invalid2 = <TMP>;
close TMP;

print STDERR "is_utf8: '".utf8::is_utf8($invalid2).
              "' valid: '".utf8::valid($invalid2)."'\n".
              "length: ".length($invalid2)."\n";

print $invalid2;

binmode STDOUT,":utf8";
print $invalid2;

binmode STDOUT,":encoding(utf8)";
print $invalid2;


> perl --version

This is perl, v5.8.8 built for i486-linux-gnu-thread-multi
 ...

> perl test.pl | hexdump -C
utf8 "\xE1" does not map to Unicode at test.pl line 16, <TMP> line 1.
Malformed UTF-8 character (unexpected end of string) in length at test.pl  
line 19.
is_utf8: '1' valid: ''
length: 0
Wide character in print at test.pl line 23.
00000000  e1 80 e1 80 e1 80                                 |......|
00000006

> hexdump -C invalidutf8.txt
00000000  e1 80                                             |..|
00000002


The first line ("...does not map...") comes from reading the "binmode  
:utf8" handle.
Note that $invalid2 contains exactly those two broken bytes from  
invalidutf8.txt, anyway.

The next validation message comes from length($invalid2) ("...Malformed  
UTF-8...").
Note that the string is indeed utf8 flagged, though perl has noticed that  
it is invalid.

This example is just to provide a quick test case for invalid utf8 in an  
utf8 string
in perl. My point from the previous post was that I assumed  
:encoding(utf8) on the
output handle would at least give another "...malformed..." message, or,  
better yet,
would not output anything. It does not, though, it silently and happily  
outputs the
broken utf8, just like printing to a non-utf8 handle (hence the "Wide  
character in print")
or a ":utf8" handle.

You are right then - "encoding(utf8)" seems only to differ from "utf8"  
when used on an
input handle. If the 'binmode TMP,":encoding(utf8)";' is used when reading  
the broken
bytes in, then everything works fine ($invalid2==undef, in that case).

BTW, this is not purely hypotetical for me; I have to work with some  
broken modules
which I cannot easily change, which in some weird cases produce such  
invalid utf8
strings.

It would be interesting to see whether newer perls behaves the same. Is  
there someone
who would like to run the test script through 5.10?


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

Date: Tue, 29 Sep 2009 22:28:28 +0100
From: Ben Morrow <ben@morrow.me.uk>
Subject: Re: CGI and UTF-8
Message-Id: <soaap6-e0u.ln1@osiris.mauzo.dyndns.org>


Quoth "Jochen Lehmeier" <OJZGSRPBZVCX@spammotel.com>:
> On Tue, 29 Sep 2009 00:46:54 +0200, Ben Morrow <ben@morrow.me.uk> wrote:
> 
> >> :encoding(utf8) does validate on output though, or doesn't it?
> >
> > What do you mean, 'validate'?
> 
> To raise an error or at least display some warning about it when it  
> encounters
> invalid bytes in an utf8 flagged string, like perl does at many other  
> places.

Hmmm. IMHO that such strings can be created at all (the help of a
misbehaving XS module) is a bug in perl. If you find yourself getting
such strings from somewhere you should check all strings and correct or
discard the invalid ones as soon as possible. As I said before, I don't
know whether there are still any seg faults/memory corruption bugs
related to invalid utf8 in a SvUTF8 string, but I wouldn't be surprised.

> The first line ("...does not map...") comes from reading the "binmode  
> :utf8" handle.
> Note that $invalid2 contains exactly those two broken bytes from  
> invalidutf8.txt, anyway.

Yes. The :utf8 layer (alone) is always a mistake on input. That's the
real bug in this example: if it weren't for that, you would never have
created an incorrectly-marked string in the first place.

> The next validation message comes from length($invalid2) ("...Malformed  
> UTF-8...").
> Note that the string is indeed utf8 flagged, though perl has noticed that  
> it is invalid.
> 
> This example is just to provide a quick test case for invalid utf8 in an  
> utf8 string
> in perl. My point from the previous post was that I assumed  
> :encoding(utf8) on the
> output handle would at least give another "...malformed..." message, or,  
> better yet,
> would not output anything.

I believe there are *lots* of places where perl will fail to notice if
you have an invalidly marked string. Basically, perl only checks for
correct utf8 if it needs to decode the string, so anything like output
that just involves copying the bytes across (assuming they are valid, as
they ought to be) won't check.

> BTW, this is not purely hypotetical for me; I have to work with some  
> broken modules
> which I cannot easily change, which in some weird cases produce such  
> invalid utf8
> strings.

Make sure you check every string that might potentially be corrupted
with utf8::valid before using it for anything else.

> It would be interesting to see whether newer perls behaves the same. Is  
> there someone
> who would like to run the test script through 5.10?

I get the same output as you with

    This is perl, v5.10.1 (*) built for i386-freebsd-64int

(I'm not sure what that star's doing there. AFAIK FreeBSD don't patch
their perl any more...)

Ben



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

Date: Wed, 30 Sep 2009 00:21:59 +0200
From: "Jochen Lehmeier" <OJZGSRPBZVCX@spammotel.com>
Subject: Re: CGI and UTF-8
Message-Id: <op.u01hqxatmk9oye@frodo>

On Tue, 29 Sep 2009 23:28:28 +0200, Ben Morrow <ben@morrow.me.uk> wrote:

>> BTW, this is not purely hypotetical for me; I have to work with some
>> broken modules which I cannot easily change, which in some weird cases  
>> produce such
>> invalid utf8 strings.
>
> Make sure you check every string that might potentially be corrupted
> with utf8::valid before using it for anything else.

Yes, of course. It would just be nice if :encoding(utf8) on an output layer
would catch those, kind of as a last resort, just the same as  
:encoding(utf8)
catching them on input. Or, to put it the other way round,
I find it funny that perl warns in something like the length() function,  
but not
while actually printing. Well, maybe in Perl 5.12. ;-)




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

Date: Tue, 29 Sep 2009 23:47:06 +0100
From: Ben Morrow <ben@morrow.me.uk>
Subject: Re: CGI and UTF-8
Message-Id: <acfap6-9au.ln1@osiris.mauzo.dyndns.org>


Quoth "Jochen Lehmeier" <OJZGSRPBZVCX@spammotel.com>:
> On Tue, 29 Sep 2009 23:28:28 +0200, Ben Morrow <ben@morrow.me.uk> wrote:
> 
> >> BTW, this is not purely hypotetical for me; I have to work with some
> >> broken modules which I cannot easily change, which in some weird cases  
> >> produce such
> >> invalid utf8 strings.
> >
> > Make sure you check every string that might potentially be corrupted
> > with utf8::valid before using it for anything else.
> 
> Yes, of course. It would just be nice if :encoding(utf8) on an output layer
> would catch those, kind of as a last resort, just the same as  
> :encoding(utf8)
> catching them on input.

If you want it would be fairly easy to write a :via(ValidUTF8) layer
that checks everything with utf8::valid.

> Or, to put it the other way round,
> I find it funny that perl warns in something like the length() function,  
> but not
> while actually printing. 

As I said, perl only warns if it actually needs to decode the
characters. Printing (in utf8) doesn't, it just copies the bytes onto
the output stream.

> Well, maybe in Perl 5.12. ;-)

5.12 is supposed to be fixing many of the conceptual bugs in perl's
Unicode handling. I don't know whether that will extend this far.

Ben



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

Date: Tue, 29 Sep 2009 16:21:59 +0100
From: Ben Morrow <ben@morrow.me.uk>
Subject: Re: controlling a process with perl
Message-Id: <n9l9p6-vur.ln1@osiris.mauzo.dyndns.org>


Quoth TheGist <thegist@nospam.net>:
> You know how with a debugger like gdb you can attach and
> detach from a process thus essentially locking and
> halting it?
> What would be the best way to do that with a process
> but using perl?

If you are trying to simply stop and restart the process you can (on
Unix) use kill() to send STOP and CONT signals. There are other means of
doing this on other systems: look on search.cpan.org. If you are trying
to actually debug the process, you will need a module that interfaces
with a debugger; I don't know if any such thing exists.

Ben



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

Date: Tue, 29 Sep 2009 09:15:00 -0700 (PDT)
From: smallpond <smallpond@juno.com>
Subject: Re: controlling a process with perl
Message-Id: <ddf9938c-8d23-431d-937f-4b37415af619@g1g2000vbr.googlegroups.com>

On Sep 28, 9:35=A0pm, TheGist <theg...@nospam.net> wrote:
> You know how with a debugger like gdb you can attach and
> detach from a process thus essentially locking and
> halting it?
> What would be the best way to do that with a process
> but using perl?

Render unto C that which is C.
For a perl program, debug with ptkdb.



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

Date: Tue, 29 Sep 2009 12:52:32 +0100
From: bugbear <bugbear@trim_papermule.co.uk_trim>
Subject: Re: each - iterator clash
Message-Id: <kIadnRXD4YifaFzXnZ2dnUVZ8imdnZ2d@brightview.co.uk>

Ben Morrow wrote:
> You could try tying the hash to a class derived from Tie::StdHash (in
> the Tie::Hash module) with an overriden FIRSTKEY method that logs where
> it was called from. I don't know whether this counts as 'convenient' :).
> You could also try running a debugging build of perl under a (C)
> debugger and setting a breakpoint on Perl_hv_iterinit.

The problem (as it happened) was provoked by a single
"class", so it was easy to tie:: into the hash-of-the-class
as you suggested.

With the additional logging, the problem was (fairly...)
quickly located.

It turned out to be the v2.121 version of Data::Dumper, specifically
in Sortkeys.

http://www.mail-archive.com/perl5-porters@perl.org/msg90530.html

(and in case you're wondering, yes, the Solaris machine
in question has an Old perl on it)

Thanks for your help.

   BugBeasr


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

Date: Tue, 29 Sep 2009 19:31:41 -0400
From: monkeys paw <user@example.net>
Subject: eval DBI
Message-Id: <vredncNDObVBBV_XnZ2dnUVZ_u2dnZ2d@insightbb.com>

> There is a common point of failure when using a DBI interface,
> either on new or old platform. What i ran into is that using
> eval over a DBI execute, SO:
> 
> to properly handle this:
> 
> $sth = $dbh->prepare($sql);
> 
> eval {
>    $sth->execute();
> }
> 
> 
> throws some strange syntax error, any idea why?


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

Date: Tue, 29 Sep 2009 18:55:17 -0500
From: Tad J McClellan <tadmc@seesig.invalid>
Subject: Re: eval DBI
Message-Id: <slrnhc56oq.mcn.tadmc@tadmc30.sbcglobal.net>

monkeys paw <user@example.net> wrote:

[ snip ]

>> throws some strange syntax error, 


Please include the verbatim text of any messages you get.

Have you seen the Posting Guidelines that are posted here frequently?


> any idea why?


Yes.

You get a strange syntax error message 
when there is a strange syntax error.

Whether it is a Perl syntax error or an SQL syntax error is not
known to us since you have withheld the text of the error message...


-- 
Tad McClellan
email: perl -le "print scalar reverse qq/moc.noitatibaher\100cmdat/"


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

Date: Wed, 30 Sep 2009 01:25:58 +0100
From: Ben Morrow <ben@morrow.me.uk>
Subject: Re: eval DBI
Message-Id: <m5lap6-pku.ln1@osiris.mauzo.dyndns.org>


Quoth monkeys paw <user@example.net>:
> > There is a common point of failure when using a DBI interface,
> > either on new or old platform. What i ran into is that using
> > eval over a DBI execute, SO:
> > 
> > to properly handle this:
> > 
> > $sth = $dbh->prepare($sql);
> > 
> > eval {
> >    $sth->execute();
> > }
> > 
> > 
> > throws some strange syntax error, any idea why?

use PSI::ESP;

Might it be because you omitted the ';' after the eval statement,
causing perl to mis-parse the rest of the file?

Ben



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

Date: Tue, 29 Sep 2009 22:00:03 GMT
From: PerlFAQ Server <brian@theperlreview.com>
Subject: FAQ 4.58 How do I look up a hash element by value?
Message-Id: <Drvwm.196271$8B7.31914@newsfe20.iad>

This is an excerpt from the latest version perlfaq4.pod, which
comes with the standard Perl distribution. These postings aim to 
reduce the number of repeated questions as well as allow the community
to review and update the answers. The latest version of the complete
perlfaq is at http://faq.perl.org .

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

4.58: How do I look up a hash element by value?

    Create a reverse hash:

            %by_value = reverse %by_key;
            $key = $by_value{$value};

    That's not particularly efficient. It would be more space-efficient to
    use:

            while (($key, $value) = each %by_key) {
                    $by_value{$value} = $key;
                }

    If your hash could have repeated values, the methods above will only
    find one of the associated keys. This may or may not worry you. If it
    does worry you, you can always reverse the hash into a hash of arrays
    instead:

            while (($key, $value) = each %by_key) {
                     push @{$key_list_by_value{$value}}, $key;
                    }



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

The perlfaq-workers, a group of volunteers, maintain the perlfaq. They
are not necessarily experts in every domain where Perl might show up,
so please include as much information as possible and relevant in any
corrections. The perlfaq-workers also don't have access to every
operating system or platform, so please include relevant details for
corrections to examples that do not work on particular platforms.
Working code is greatly appreciated.

If you'd like to help maintain the perlfaq, see the details in 
perlfaq.pod.


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

Date: Tue, 29 Sep 2009 16:00:03 GMT
From: PerlFAQ Server <brian@theperlreview.com>
Subject: FAQ 8.34 I {changed directory, modified my environment} in a perl script.  How come the change disappeared when I exited the script?  How do I get my changes to be visible?
Message-Id: <7aqwm.446937$Ta5.409158@newsfe15.iad>

This is an excerpt from the latest version perlfaq8.pod, which
comes with the standard Perl distribution. These postings aim to 
reduce the number of repeated questions as well as allow the community
to review and update the answers. The latest version of the complete
perlfaq is at http://faq.perl.org .

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

8.34: I {changed directory, modified my environment} in a perl script.  How come the change disappeared when I exited the script?  How do I get my changes to be visible?

    Unix
        In the strictest sense, it can't be done--the script executes as a
        different process from the shell it was started from. Changes to a
        process are not reflected in its parent--only in any children
        created after the change. There is shell magic that may allow you to
        fake it by eval()ing the script's output in your shell; check out
        the comp.unix.questions FAQ for details.



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

The perlfaq-workers, a group of volunteers, maintain the perlfaq. They
are not necessarily experts in every domain where Perl might show up,
so please include as much information as possible and relevant in any
corrections. The perlfaq-workers also don't have access to every
operating system or platform, so please include relevant details for
corrections to examples that do not work on particular platforms.
Working code is greatly appreciated.

If you'd like to help maintain the perlfaq, see the details in 
perlfaq.pod.


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

Date: Wed, 30 Sep 2009 04:00:02 GMT
From: PerlFAQ Server <brian@theperlreview.com>
Subject: FAQ 9.8 How do I fetch an HTML file?
Message-Id: <6JAwm.20729$tG1.9041@newsfe22.iad>

This is an excerpt from the latest version perlfaq9.pod, which
comes with the standard Perl distribution. These postings aim to 
reduce the number of repeated questions as well as allow the community
to review and update the answers. The latest version of the complete
perlfaq is at http://faq.perl.org .

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

9.8: How do I fetch an HTML file?

    (contributed by brian d foy)

    Use the libwww-perl distribution. The "LWP::Simple" module can fetch web
    resources and give their content back to you as a string:

            use LWP::Simple qw(get);

            my $html = get( "http://www.example.com/index.html" );

    It can also store the resource directly in a file:

            use LWP::Simple qw(getstore);

            getstore( "http://www.example.com/index.html", "foo.html" );

    If you need to do something more complicated, you can use
    "LWP::UserAgent" module to create your own user-agent (e.g. browser) to
    get the job done. If you want to simulate an interactive web browser,
    you can use the "WWW::Mechanize" module.



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

The perlfaq-workers, a group of volunteers, maintain the perlfaq. They
are not necessarily experts in every domain where Perl might show up,
so please include as much information as possible and relevant in any
corrections. The perlfaq-workers also don't have access to every
operating system or platform, so please include relevant details for
corrections to examples that do not work on particular platforms.
Working code is greatly appreciated.

If you'd like to help maintain the perlfaq, see the details in 
perlfaq.pod.


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

Date: Tue, 29 Sep 2009 14:33:16 +0000 (UTC)
From: kj <no.email@please.post>
Subject: How to dump all (lexical) variables?
Message-Id: <h9t5rc$dbl$1@reader1.panix.com>




I have a long-running program that fails sporadically at a particular
point in its execution.  This is a "controlled failure", because
it is due to an assertion that is unexpectedly failing to hold.
To debug this, it would be really helpful if I could dump the values
of all the current variables (especially the lexical ones that are
"visible" at the point of failure) right before the program aborts.

Is there an simple way to do this?

TIA!

kynn 


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

Date: Tue, 29 Sep 2009 16:37:39 +0200
From: Peter Makholm <peter@makholm.net>
Subject: Re: How to dump all (lexical) variables?
Message-Id: <87iqf1lsuk.fsf@vps1.hacking.dk>

kj <no.email@please.post> writes:

> To debug this, it would be really helpful if I could dump the values
> of all the current variables (especially the lexical ones that are
> "visible" at the point of failure) right before the program aborts.

The peek_my function from the PadWalker module might do what you want.

//Makholm


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

Date: Tue, 29 Sep 2009 15:15:47 +0000 (UTC)
From: kj <no.email@please.post>
Subject: Re: How to dump all (lexical) variables?
Message-Id: <h9t8b3$ot2$1@reader1.panix.com>

In <87iqf1lsuk.fsf@vps1.hacking.dk> Peter Makholm <peter@makholm.net> writes:

>kj <no.email@please.post> writes:

>> To debug this, it would be really helpful if I could dump the values
>> of all the current variables (especially the lexical ones that are
>> "visible" at the point of failure) right before the program aborts.

>The peek_my function from the PadWalker module might do what you want.

Looks handy.  Thanks!

kynn


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

Date: Tue, 29 Sep 2009 10:44:02 -0700 (PDT)
From: Petr Sezemsky <petr.sezemsky@vrg.cz>
Subject: switch case (/regex/) ... $1 - emtpy
Message-Id: <e5a522c5-fbea-42d9-b749-ca5194a97e16@w36g2000yqm.googlegroups.com>

Hi,

Why using the regex in switch - case doesn't fill the $1, $2, ..
variables? This code works as I expect:

#!/usr/bin/perl
$_ = "hello world";

if (/he(ll)o/) {
        print "OK: $1\n";
}

but the next doesn't work as the previous:

#!/usr/bin/perl
use Switch;
$_ = "hello world";

switch ($_) {
        case (/he(ll)o/) {
                print "OK: $1\n";
        }
}

Thank you for explanation the problem.

Petr


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

Date: Tue, 29 Sep 2009 14:14:45 -0400
From: "Uri Guttman" <uri@StemSystems.com>
Subject: Re: switch case (/regex/) ... $1 - emtpy
Message-Id: <87hbul7h4a.fsf@quad.sysarch.com>

>>>>> "PS" == Petr Sezemsky <petr.sezemsky@vrg.cz> writes:

  PS> Why using the regex in switch - case doesn't fill the $1, $2, ..
  PS> variables? This code works as I expect:

  PS> #!/usr/bin/perl
  PS> use Switch;

that module does source filtering. the actual code that compiles is not
what you put in the file. and because of that it is not recommended to
ever use that module.

  PS> $_ = "hello world";

  PS> switch ($_) {
  PS>         case (/he(ll)o/) {
  PS>                 print "OK: $1\n";

you can't easily tell what the code is there and whether the regex is
run just before your print. it appears how you like it but it isn't
underneath. 

perl 5.10 has given/when built in (taken from perl6) which is a proper
switch statement and it supports smart matching as well. this works as
you expect:

perl -le 'use feature ":5.10"; given ("bar") { when( /(a)/ ) { print "$1\n" } }'
a

see the docs in perlsyn for the full syntax.

uri



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

Date: Tue, 29 Sep 2009 09:12:26 -0700 (PDT)
From: smallpond <smallpond@juno.com>
Subject: Re: the solution to some of the world's big problems is CPAN
Message-Id: <8a5787bb-6ec1-4e32-9756-b093aca0ca19@m20g2000vbp.googlegroups.com>

On Sep 28, 6:15=A0pm, sreservoir <sreserv...@gmail.com> wrote:
> Keith Keller wrote:
> > On 2009-09-28, Uri Guttman <u...@StemSystems.com> wrote:
> >> CPAN
>
> > Is that the World::Solutions module?
>
> > --keith
>
> No, unimport of World::Problems does that.
>
> Like this:
>
> no World::Problems;

use Diplomacy;



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

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


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