[7037] in Perl-Users-Digest

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

Perl-Users Digest, Issue: 662 Volume: 8

daemon@ATHENA.MIT.EDU (Perl-Users Digest)
Wed Jun 25 13:38:09 1997

Date: Wed, 25 Jun 97 10:00:22 -0700
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, 25 Jun 1997     Volume: 8 Number: 662

Today's topics:
     Re:  Perl Network/Socket programming kingzem@nationwide.com
     Re: "system" output into array (Clay Irving)
     Re: Checking a string for "@' and "." <flg@vhojd.skovde.se>
     Re: Checking a string for "@' and "." <jefpin@bergen.org>
     Extract string from a string <chiyung@b1.hkstar.com>
     Re: Extract string from a string <sfairey@adc.metrica.co.uk>
     Re: Grade my first Perl Project <merlyn@stonehenge.com>
     Re: Grade my first Perl Project <sfairey@adc.metrica.co.uk>
     Re: NEWBIE, help please! <rootbeer@teleport.com>
     Novell's ActiveX controls w/NT Perl 5 <R.J.Rainthorpe@gre.ac.uk>
     Re: Perl Network/Socket programming <zenin@best.com>
     Re: Perl Network/Socket programming <mjg@oms.com>
     Re: perl script on WinNT <keys@babylon5fan.corn>
     Re: Q: MacPerl, MacHTTP and CGI (Adam Schneider)
     Re: Q: MacPerl, MacHTTP and CGI <rootbeer@teleport.com>
     Re: reading a data file? <weekend_warrior@mindless.com>
     Re: regex question <merlyn@stonehenge.com>
     Regexps on streams (Andrew Pimlott)
     Re: Regexps on streams <rootbeer@teleport.com>
     Re: Retreive html document by PERL <sfairey@adc.metrica.co.uk>
     Re: Validating E-Mail addresses and URL's (Clay Irving)
     Re: What does <<END do? <rootbeer@teleport.com>
     Re: What does <<END do? <sfairey@adc.metrica.co.uk>
     Re: what is my, lc and etc and where to learn it? <mjg@oms.com>
     Digest Administrivia (Last modified: 8 Mar 97) (Perl-Users-Digest Admin)

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

Date: Wed, 25 Jun 1997 10:39:44 -0600
From: kingzem@nationwide.com
To: rootbeer@teleport.com
Subject: Re:  Perl Network/Socket programming
Message-Id: <867242256.15300@dejanews.com>

It was suggested I post my code to my previous question.  I've tried using
sysread instead of $var=<filehandle>, but I don't know the size of items
coming across the socket.  I could do a split on a carriage return...but
I'd like to hear any suggestions.

Server:
#!/vol/perl/sunos/bin/perl

require 'sys/socket.ph';
require 'flush.pl';

# TCPIP init parameters.
$sockaddr = 'S n a4 x8';
chop($hostname = `hostname`);
($name, $aliases, $proto) = getprotobyname('tcp');
$port = 4973;
$thisport = pack($sockaddr, &AF_INET, $port, "\0\0\0\0");

# Set up TCP socket.
socket(S, &PF_INET, &SOCK_STREAM, $proto) ||
    die "Cannot create socket on port $port.\n";
bind(S, $thisport) || die "Cannot bind socket.\n";
listen(S,5) || die "Cannot listen socket.\n";

# Loop forever to accept connections
for (;;) {
    accept(NS,S) || die "Cannot accept socket.\n";
    print STDOUT "Waiting for message...";
    &flush(STDOUT);
    &flush(NS);
    $message=<NS>;
    #sysread(NS,$message,16000);
    print "Got message!\n";
    last if ( $message eq 'close' );
    if ( ! fork ) {
	&handle_connection;
	exit;
    }
    close NS;
}
close NS;
close S;

exit;



sub handle_connection {

    while ($message ne 'close' || $message ne 'exit') {
	print STDOUT "Message is: $message\n";
	if ( $message eq 'list' ) {
	    print NS "Log list...\n";
	    &flush(NS);
	}
	if ( $message eq 'exit' ) {
	    print NS "Closing connection.\n";
	    &flush(NS);
	    print NS "SERVER_EXIT";
	    &flush(NS);
	    last;
	}
	else {
	    print NS "Command $message not understood.\n";
	    &flush(NS);
	}
	print NS "SERVER_END_SEND";
	&flush(NS);
	$message=<NS>;
	#sysread(NS,$message,16000);
    }
    close NS;
}

And the client:

#!/vol/perl/sunos/bin/perl
require 'sys/socket.ph';
require 'flush.pl';

# TCPIP init parameters.
$sockaddr = 'S n a4 x8';
chop($hostname = `hostname`);
($name, $aliases, $proto) = getprotobyname('tcp');
($name, $aliases, $type, $len, $thisaddr) = gethostbyname($hostname);
$port = 4973;
$thisport = pack($sockaddr, &AF_INET, 0, $thisaddr);
$thatport = pack($sockaddr, &AF_INET, $port, $thisaddr);

# Set up TCP socket.
socket(S, &PF_INET, &SOCK_STREAM, $proto) ||
    die "Cannot create socket on port $port.\n";
bind(S, $thisport) || die "Cannot bind socket.\n";
connect(S,$thatport) || die "Cannot connect.\n";

&interact;

exit;


sub interact {
    local($command)=undef;
    print "\n\n\n-";
    while ($serv_msg ne 'SERVER_EXIT' || $command ne 'exit') {
	$command=<STDIN>;
	chop($command);
	print S $command;
	&flush(S);
	#sysread(S,$serv_msg,16000);
	$serv_msg=<S>;
	print "6\n";
	while ( ($serv_msg ne 'SERVER_END_SEND' || $serv_msg ne
'SERVER_EXIT')
	                                        && $serv_msg) {
	    print "$serv_msg";
	    #sysread(S,$serv_msg,16000);
	    $serv_msg=<S>;
	}
	print "\n-";
    }
}

-------------------==== Posted via Deja News ====-----------------------
      http://www.dejanews.com/     Search, Read, Post to Usenet


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

Date: 25 Jun 1997 08:59:57 -0400
From: clay@panix.com (Clay Irving)
Subject: Re: "system" output into array
Message-Id: <5or4od$opl@panix.com>

In <33AFFD42.5F53@fmr.com> Jim Condit <jim.condit@fmr.com> writes:

>I would like to take the output generated by the system() function and
>put it into an array, something like this:

>system("command which prints to the screen") > @screencapture ;

It captures the return status of system() -- You want:

@screencapture = `command which prints to the screen`;

-- 
Clay Irving                                        See the happy moron,
clay@panix.com                                     He doesn't give a damn,
http://www.panix.com/~clay                         I wish I were a moron,
                                                   My God! Perhaps I am!


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

Date: 25 Jun 97 08:30:53 GMT
From: "Fredrik Lindberg" <flg@vhojd.skovde.se>
Subject: Re: Checking a string for "@' and "."
Message-Id: <01bc8142$18755aa0$e20f10c2@odens.di.vhojd.skovde.se>

Fredrik Lindberg <flg@vhojd.skovde.se> wrote in article 
> Anyway, I could only think of one way of finding both
> character with one expression:
> 
> (($string =~ tr/.@/.@/) > 0)

Now shame on me, I *did* read the _excellent_ book by
Jeffrey Friedl, and still only could come up with this
lame option...well well..guess I have to read it one
more time again.

I did some more tests ;-) and suprisingly the regex
offered by Friedl in his book was some 4 to 8 times
slower then the double regex when it couldnt find a match?? 

However the solution provided by Craig Berry

/^(?=.*?\@).*?\./

Was actually as fast as the index() versions on my 
machine.

/Fredrik



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

Date: Wed, 25 Jun 1997 11:15:00 -0400
From: TechMaster Pinyan <jefpin@bergen.org>
Subject: Re: Checking a string for "@' and "."
Message-Id: <Pine.SGI.3.96.970625111411.11672A-100000@davinci.bergen.org>

>> Anyway, I could only think of one way of finding both
>> character with one expression:
>> 
>> (($string =~ tr/.@/.@/) > 0)
>
>That will produce a false positive on a string with more than one dot and
>no @-sign, among other cases. Oops!

Maybe

if ($string =~ /@/ && $string =~ /\./){ #whatever }

----------------
| "To be a rock, and not to roll."
| 	- Led Zeppelin
----------------
Jeff "TechMaster" Pinyan | http://www.bergen.org/~jefpin
HTML/CGI Designer and Consultant and JavaScripter
jefpin@bergen.org | TechMasterJeff@juno.com
Got a JavaScript/CGI/Perl question or problem?  Let me know!
webXS - the new eZine for WebProgrammers! webXS@juno.com
Visit us @ http://www.bergen.org/~jefpin/webXS



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

Date: Wed, 25 Jun 1997 16:45:57 +0800
From: Aldoliu Chan <chiyung@b1.hkstar.com>
Subject: Extract string from a string
Message-Id: <Pine.SOL.3.95.970625164343.12238B-100000@b1.hkstar.com>

Hi,
   How can i extract the string 'http://www.intel.com/' from string
   @STRING = "<HTML> <A HREF="http://www.intel.com/"> </HTML>"
    

Cheers,
Aldoliu Chan 
==========================================================================
Senior Programmer                           e-mail: aldoliu@mailhost.net 
Citybus Limited                                     chiyung@hkstar.com
(HONG KONG)                                         isbyron@citybus.com.hk



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

Date: Wed, 25 Jun 1997 11:22:20 +0100
From: Simon Fairey <sfairey@adc.metrica.co.uk>
To: Aldoliu Chan <chiyung@b1.hkstar.com>
Subject: Re: Extract string from a string
Message-Id: <33B0F15C.3F54@adc.metrica.co.uk>

Aldoliu Chan wrote:
> 
> Hi,
>    How can i extract the string 'http://www.intel.com/' from string
>    @STRING = "<HTML> <A HREF="http://www.intel.com/"> </HTML>"
> 
> 
> Cheers,
> Aldoliu Chan
> ==========================================================================
> Senior Programmer                           e-mail: aldoliu@mailhost.net
> Citybus Limited                                     chiyung@hkstar.com
> (HONG KONG)                                         isbyron@citybus.com.hk

Look into regexps there is more than enough info on this in the FAQ and
some regexp specific documentation at http://www.perl.com. Have a play
and if you are still stuck come back with a snippet of your efforts.

simple(ish) example:

perl -e '"http://www.perl.com/" =~ /http:\/\/([^\/]*)/; print "\n$1\n"'


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

Date: 25 Jun 1997 08:21:32 -0700
From: Randal Schwartz <merlyn@stonehenge.com>
To: bkfoddy@skypoint.com
Subject: Re: Grade my first Perl Project
Message-Id: <8cradqaetf.fsf@gadget.cscaper.com>

>>>>> "Brian" == Brian Foddy <bkfoddy@skypoint.com> writes:

Brian> First the problem:  You have two files.

Brian> "UserFile"  contains lines like this:
Brian> ===============================================
Brian> *connectionModule: UTSTCP
Brian> *terminalModule: UTS
Brian> *fileTransferModule: 
Brian> *connectionSettings:  Terminal: uts60\n\
Brian> 	Connection: tp0\n\
Brian> 	Hostname: 139.72.100.50\n\
Brian> 	Application: TIP\n\
Brian> 	Message: ^\n\
Brian> 	TSAP: TIPCSU\n\
Brian> 	ID: LA025179\n\
Brian> 	Session: MSG 25179
Brian> 	Caption: LA025179\n\


Brian> "ControlFile" contains lines like this:
Brian> =================================================
Brian> ID: LA0999\n\
Brian> Session: Session Here 
Brian> Caption: Title Here\n\


Brian> The Control file contains override values for the User file.
Brian> Substitute the values from the Control file for the corresponding
Brian> values in the User file, and create a new User file with the
Brian> merged result.  So the new file should look like:

Brian> *connectionModule: UTSTCP
Brian> *terminalModule: UTS
Brian> *fileTransferModule: 
Brian> *connectionSettings:  Terminal: uts60\n\
Brian> 	Connection: tp0\n\
Brian> 	Hostname: 139.72.100.50\n\
Brian> 	Application: TIP\n\
Brian> 	Message: ^\n\
Brian> 	TSAP: TIPCSU\n\
Brian> 	ID: LA0999\n\
Brian> 	Session: Session Here 
Brian> 	Caption: Title Here\n\

Brian> There can be any (but limited) number of control lines, and any
Brian> number of User lines.

[27 line solution deleted]

Here's my solution.  I made the keys case-insensitive.  If you don't
want that, remove the "lc" below.  Leading whitespace in the override
file is ignored, but leading whitespace in the template is kept (nice
touch :-).

    #!/usr/bin/perl
    ## presume STDIN is source, STDOUT is dest

    while (<DATA>) {
      $override{lc $2} = $1 if /^\s*((\w+):.*\n)/;
    }
    while (<STDIN>) {
      $_ = "$1$override{lc $2}" if
	 /^(\s*)(\w+):/ and exists $override{lc $2};
      print;
    }
    __END__
    YourControlInfo: goes here\n\
    ThatWayYou: don't lose the info!

This is actually a nice little example for a future Unix Review column.
Thanks for the inspiration!  (Prior Unix Review columns are online
at http://www.stonehenge.com/merlyn/UnixReview/.)

print "Just another Perl hacker," # but not what the media calls "hacker!" :-)
## legal fund: $20,495.69 collected, $182,159.85 spent; just 433 more days
## before I go to *prison* for 90 days; email fund@stonehenge.com for details

-- 
Name: Randal L. Schwartz / Stonehenge Consulting Services (503)777-0095
Keywords: Perl training, UNIX[tm] consulting, video production, skiing, flying
Email: <merlyn@stonehenge.com> Snail: (Call) PGP-Key: (finger merlyn@ora.com)
Web: <A HREF="http://www.stonehenge.com/merlyn/">My Home Page!</A>
Quote: "I'm telling you, if I could have five lines in my .sig, I would!" -- me


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

Date: Wed, 25 Jun 1997 11:12:09 +0100
From: Simon Fairey <sfairey@adc.metrica.co.uk>
To: bkfoddy@skypoint.com
Subject: Re: Grade my first Perl Project
Message-Id: <33B0EEF8.59E2@adc.metrica.co.uk>

Brian Foddy wrote:
> 
> Hi all,
> 
> I just finished my first Perl project and I thought I'd
> post the problem and my code to see how the experts would
> grade my work.

> PROBLEM AND SOLUTION SNIPPED <

> Some whiz with regular expressions and substitutions could probably
> write this in a couple lines, not me.  I had the roughest time
> with the expressions I used.  'C' doesn't use them, and I felt it
> was a cop-out to use something like the C string functions.
> 
> So there you go.  Give me your honest impressions and grades.  And
> if somebody wants show me "How it should be done", feel free, I won't
> be hurt.
> 
> Brian Foddy
> Eagan, MN

I am not much of a teacher so grading is not my thing. As always with
perl there is more than one way of doing what you have done and while I
could knock up my version that would defeat the object ( after all if
you truly want to learn then solutions on a plate are not the way to go
). Here are some things which you might want to play with.

1. Use 'and' and 'or' instead of '&&' and '||' they are clearer and
somewhat safer as they have lower precedence.
2. Consider using the split() command rather than a regexp to extract
your data.
i.e. split( /:/, $line )
3. Consider using an associative array, especially to store the options
which can be overidden. You would then only need to read in the first
file and then simply reading the second file would overwrite those
created by the first file.
i.e. $key = 'Session';
     $val = 'Msg';
     $consettings{$key} = $val;
     $key = 'Session';
     $val = 'Session here';
     $consettings{$key} = $val;
Hence there is no need to do any checks to see if it is allready set
etc.
4. Look at the keys() function when you want to try and print the
contents of an associative array.
5. Read the FAQ and scour the documentation section of
http://www.perl.com

Most of all remember this, if it works then you have acheived your goal
and with time you will pick up the little tricks. Quite often you will
then end up going back to your old scripts and think "my god that 100
line script could have been done in 10"; then you rewrite it.

Have fun and if you get stuck trying to improve your script then shout.

Simon
BTW: comp.lang.perl no longer exists.


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

Date: Wed, 25 Jun 1997 08:58:50 -0700
From: Tom Phoenix <rootbeer@teleport.com>
To: Rafael Algara Torre <ralgara@dgicii.mty.itesm.mx>
Subject: Re: NEWBIE, help please!
Message-Id: <Pine.GSO.3.96.970625085658.15150U-100000@kelly.teleport.com>

On Wed, 25 Jun 1997, Rafael Algara Torre wrote:

> Subject: NEWBIE, help please!

You don't need to tell us that you're a "NEWBIE"; we can tell from your
question. :-)  Seriously, you should see the frequent posting about
choosing good subject lines.

> I just installed Perl for Win32 on my NT 4.0, I wrote some
> samples but when I try to run them from my browser I get the
> whole perl source sent, it never executes, what's going on?

When you're having trouble with a CGI program in Perl, you should first
look at the please-don't-be-offended-by-the-name Idiot's Guide to solving
such problems. It's available on the perl.com web pages. Hope this helps! 

   http://www.perl.com/perl/
   http://www.perl.com/perl/faq/
   http://www.perl.com/perl/faq/idiots-guide.html

-- 
Tom Phoenix           http://www.teleport.com/~rootbeer/
rootbeer@teleport.com  PGP   Skribu al mi per Esperanto!
Randal Schwartz Case:  http://www.rahul.net/jeffrey/ovs/



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

Date: Wed, 25 Jun 1997 17:01:33 +0100
From: Robert Rainthorpe <R.J.Rainthorpe@gre.ac.uk>
Subject: Novell's ActiveX controls w/NT Perl 5
Message-Id: <33B140DC.B7B4ACB4@gre.ac.uk>

Hello all,

Trying to use Novell's newish ActiveX controls with Perl 5 under NT,
using Novell's latest Intranetware Client.

I've taken a Visual Basic sample program and extracted/translated the
following:-

#######################
use OLE;

$session=CreateObject OLE "NWSESSLib.NWSess" or die "Can't create";

$oTree=$session->ConnectedTrees;

foreach $tree (keys %$oTree) {
  print $tree->ShortName."\n";
}
########################


This should create a session object, get a "ConnectedTrees" container,
then list the names of each tree that I'm connected to. Unfortunately it
dies at line 3, saying that it can't create.

The Visual Basic version of this works fine. The object class name is
copied directly from the .FRM file. Extracts are shown below:-

First, the object declaration

   Begin NWSESSLib.NWSess session 
      Left            =   5040
      Top             =   120
      _Version        =   65536
      _ExtentX        =   741
      _ExtentY        =   741
      _StockProps     =   0
   End

Now, the subroutine that lists the trees
Private Sub RefreshTrees()
   Dim oTree As NWNETOBJ
   Dim itmX As ListItem
   lvTrees.ListItems.Clear
   For Each oTree In session.ConnectedTrees
      Set itmX = lvTrees.ListItems.Add(, , oTree.ShortName)
      itmX.SubItems(1) = oTree.FullName
   Next oTree
End Sub



Also, the ado.pl example file works fine.

What am I missing? I suspect the problem lies with the class itself,
rather than Perl or my code, since my code is copied from a working
example (foreach.pl), and other classes work. So I suppose what I really
want to know is: has anyone successfully instantiated a Novell ActiveX
object using Perl 5 on NT?

Thanks,

Rob.

Robert Rainthorpe
System Administrator
the University of Greenwich


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

Date: 25 Jun 1997 14:56:47 GMT
From: Zenin <zenin@best.com>
Subject: Re: Perl Network/Socket programming
Message-Id: <5orbjf$hhg$2@nntp2.ba.best.com>

kingzem@nationwide.com wrote:
	>snip<
> The problem I've narrowed this down to is that neither the client nor the
> server sees the string sent across the socket until the socket is closed.

	After you've got the SERVER and/or CLIENT socket handles
	created and opened, do:

		select ((select(SERVER), $| = 1)[0]);

	and the same for the CLIENT handle.  This turns on autoflushing
	so that stdio doesn't mess you up on either side.

-- 
-Zenin
 zenin@best.com


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

Date: Wed, 25 Jun 1997 08:56:35 GMT
From: "Mark J. Gardner" <mjg@oms.com>
Subject: Re: Perl Network/Socket programming
Message-Id: <ECBqIG.3zn@nonexistent.com>

This is a cryptographically signed message in MIME format.

--------------msC04D7061B3798BD29F7826B0
Content-Type: multipart/mixed; boundary="------------B3F0B1BFFF58016FBE2AE34E"

This is a multi-part message in MIME format.
--------------B3F0B1BFFF58016FBE2AE34E
Content-Type: text/plain; charset=us-ascii
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Content-Transfer-Encoding: 7bit

kingzem@nationwide.com wrote:

> I'm trying to get a client/server program to talk back and forth over
> a
> tcp socket.  I've pretty much just 'reworked' the examples in
> programming
> Perl, but without success.
>
> The problem I've narrowed this down to is that neither the client nor
> the
> server sees the string sent across the socket until the socket is
> closed.
> I've tried flushing the filehandle to the socket after each print
> command,
> but it does not seem to help.  I realize the client is probably
> buffering
> the filehandle, but I don't know how to get around this.  Any ideas or
>
> examples?

I ran into this problem myself just this weekend, when I decided to
finally dive into socket programming.

The solution is that once you do your connect() to open the socket, to
select() the socket's filehandle and unbuffer it. Like so:

connect(SOCK, $paddr) or die "connect: $!";
select(SOCK);
$| = 1;

Of course, to be well-behaved, you should probably save the currently
select()ed filehandle and then restore it after you've done the above.
But you knew that already, didn't you?  ;-)

Also, you have to do this -every- time you connect(), so if you're
programming some kind of stateless protocol like HTTP, you're going to
be doing this a lot. Thus the existence of LWP.

 --MJG


--
Mark J. Gardner * mjg@oms.com * http://www.oms.com/mjg/

"Religion is the anthropomorphizing of reality." -- Kurt Harland,
8/18/95


--------------B3F0B1BFFF58016FBE2AE34E
Content-Type: text/x-vcard; charset=us-ascii; name="vcard.vcf"
Content-Transfer-Encoding: 7bit
Content-Description: Card for Mark Gardner
Content-Disposition: attachment; filename="vcard.vcf"

begin:          vcard
fn:             Mark Gardner
n:              Gardner;Mark
org:            http://www.oms.com/
adr:            49 Court Street;;Apartment #2;Flemington;NJ;08822;USA
email;internet: mjg@oms.com
title:          Webmaster
tel;work:       908-423-2773
tel;fax:        908-735-1138
tel;home:       908-806-8050
note:           My day job is Headquarters Webmaster for Merck & Co., Inc. (http://www.merck.com/).
x-mozilla-cpt:  ;0
x-mozilla-html: TRUE
end:            vcard


--------------B3F0B1BFFF58016FBE2AE34E--

--------------msC04D7061B3798BD29F7826B0
Content-Type: application/x-pkcs7-signature; name="smime.p7s"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="smime.p7s"
Content-Description: S/MIME Cryptographic Signature

MIIQuwYJKoZIhvcNAQcCoIIQrDCCEKgCAQExCzAJBgUrDgMCGgUAMAsGCSqGSIb3DQEHAaCC
DykwggpzMIIJ3KADAgECAhAGMyphYEYkQFAzLoWbRIvvMA0GCSqGSIb3DQEBBAUAMGIxETAP
BgNVBAcTCEludGVybmV0MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE0MDIGA1UECxMrVmVy
aVNpZ24gQ2xhc3MgMSBDQSAtIEluZGl2aWR1YWwgU3Vic2NyaWJlcjAeFw05NzA2MTEwMDAw
MDBaFw05ODA2MTEyMzU5NTlaMIIBGjERMA8GA1UEBxMISW50ZXJuZXQxFzAVBgNVBAoTDlZl
cmlTaWduLCBJbmMuMTQwMgYDVQQLEytWZXJpU2lnbiBDbGFzcyAxIENBIC0gSW5kaXZpZHVh
bCBTdWJzY3JpYmVyMUYwRAYDVQQLEz13d3cudmVyaXNpZ24uY29tL3JlcG9zaXRvcnkvQ1BT
IEluY29ycC4gYnkgUmVmLixMSUFCLkxURChjKTk2MTswOQYDVQQLEzJEaWdpdGFsIElEIENs
YXNzIDEgLSBOZXRzY2FwZSBGdWxsIFNlcnZpY2UgUGFydG5lcjEVMBMGA1UEAxMMTWFyayBH
YXJkbmVyMRowGAYJKoZIhvcNAQkBFgttamdAb21zLmNvbTBcMA0GCSqGSIb3DQEBAQUAA0sA
MEgCQQDC36rveKhe7MaciKUR9V9FkvodHSh1sN4crhU/L/O2K83h7+8kAo5JOjXv96SnX0iL
tn+05AXRJ6mGn0l4ZdxnAgMBAAGjggeyMIIHrjAJBgNVHRMEAjAAMIICHwYDVR0DBIICFjCC
AhIwggIOMIICCgYLYIZIAYb4RQEHAQEwggH5FoIBp1RoaXMgY2VydGlmaWNhdGUgaW5jb3Jw
b3JhdGVzIGJ5IHJlZmVyZW5jZSwgYW5kIGl0cyB1c2UgaXMgc3RyaWN0bHkgc3ViamVjdCB0
bywgdGhlIFZlcmlTaWduIENlcnRpZmljYXRpb24gUHJhY3RpY2UgU3RhdGVtZW50IChDUFMp
LCBhdmFpbGFibGUgYXQ6IGh0dHBzOi8vd3d3LnZlcmlzaWduLmNvbS9DUFM7IGJ5IEUtbWFp
bCBhdCBDUFMtcmVxdWVzdHNAdmVyaXNpZ24uY29tOyBvciBieSBtYWlsIGF0IFZlcmlTaWdu
LCBJbmMuLCAyNTkzIENvYXN0IEF2ZS4sIE1vdW50YWluIFZpZXcsIENBIDk0MDQzIFVTQSBU
ZWwuICsxICg0MTUpIDk2MS04ODMwIENvcHlyaWdodCAoYykgMTk5NiBWZXJpU2lnbiwgSW5j
LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4gQ0VSVEFJTiBXQVJSQU5USUVTIERJU0NMQUlNRUQg
YW5kIExJQUJJTElUWSBMSU1JVEVELqAOBgxghkgBhvhFAQcBAQGhDgYMYIZIAYb4RQEHAQEC
MCwwKhYoaHR0cHM6Ly93d3cudmVyaXNpZ24uY29tL3JlcG9zaXRvcnkvQ1BTIDARBglghkgB
hvhCAQEEBAMCB4AwNgYJYIZIAYb4QgEIBCkWJ2h0dHBzOi8vd3d3LnZlcmlzaWduLmNvbS9y
ZXBvc2l0b3J5L0NQUzCCBIcGCWCGSAGG+EIBDQSCBHgWggR0Q0FVVElPTjogVGhlIENvbW1v
biBOYW1lIGluIHRoaXMgQ2xhc3MgMSBEaWdpdGFsIApJRCBpcyBub3QgYXV0aGVudGljYXRl
ZCBieSBWZXJpU2lnbi4gSXQgbWF5IGJlIHRoZQpob2xkZXIncyByZWFsIG5hbWUgb3IgYW4g
YWxpYXMuIFZlcmlTaWduIGRvZXMgYXV0aC0KZW50aWNhdGUgdGhlIGUtbWFpbCBhZGRyZXNz
IG9mIHRoZSBob2xkZXIuCgpUaGlzIGNlcnRpZmljYXRlIGluY29ycG9yYXRlcyBieSByZWZl
cmVuY2UsIGFuZCAKaXRzIHVzZSBpcyBzdHJpY3RseSBzdWJqZWN0IHRvLCB0aGUgVmVyaVNp
Z24gCkNlcnRpZmljYXRpb24gUHJhY3RpY2UgU3RhdGVtZW50IChDUFMpLCBhdmFpbGFibGUK
aW4gdGhlIFZlcmlTaWduIHJlcG9zaXRvcnkgYXQ6IApodHRwczovL3d3dy52ZXJpc2lnbi5j
b207IGJ5IEUtbWFpbCBhdApDUFMtcmVxdWVzdHNAdmVyaXNpZ24uY29tOyBvciBieSBtYWls
IGF0IFZlcmlTaWduLApJbmMuLCAyNTkzIENvYXN0IEF2ZS4sIE1vdW50YWluIFZpZXcsIENB
IDk0MDQzIFVTQQoKQ29weXJpZ2h0IChjKTE5OTYgVmVyaVNpZ24sIEluYy4gIEFsbCBSaWdo
dHMgClJlc2VydmVkLiBDRVJUQUlOIFdBUlJBTlRJRVMgRElTQ0xBSU1FRCBBTkQgCkxJQUJJ
TElUWSBMSU1JVEVELgoKV0FSTklORzogVEhFIFVTRSBPRiBUSElTIENFUlRJRklDQVRFIElT
IFNUUklDVExZClNVQkpFQ1QgVE8gVEhFIFZFUklTSUdOIENFUlRJRklDQVRJT04gUFJBQ1RJ
Q0UKU1RBVEVNRU5ULiAgVEhFIElTU1VJTkcgQVVUSE9SSVRZIERJU0NMQUlNUyBDRVJUQUlO
CklNUExJRUQgQU5EIEVYUFJFU1MgV0FSUkFOVElFUywgSU5DTFVESU5HIFdBUlJBTlRJRVMK
T0YgTUVSQ0hBTlRBQklMSVRZIE9SIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgpQVVJQT1NF
LCBBTkQgV0lMTCBOT1QgQkUgTElBQkxFIEZPUiBDT05TRVFVRU5USUFMLApQVU5JVElWRSwg
QU5EIENFUlRBSU4gT1RIRVIgREFNQUdFUy4gU0VFIFRIRSBDUFMKRk9SIERFVEFJTFMuCgpD
b250ZW50cyBvZiB0aGUgVmVyaVNpZ24gcmVnaXN0ZXJlZApub252ZXJpZmllZFN1YmplY3RB
dHRyaWJ1dGVzIGV4dGVuc2lvbiB2YWx1ZSBzaGFsbCAKbm90IGJlIGNvbnNpZGVyZWQgYXMg
YWNjdXJhdGUgaW5mb3JtYXRpb24gdmFsaWRhdGVkIApieSB0aGUgSUEuMIGGBgpghkgBhvhF
AQYDBHgWdmQ0NjUyYmQ2M2YyMDQ3MDI5Mjk4NzYzYzlkMmYyNzUwNjljNzM1OWJlZDFiMDU5
ZGE3NWJjNGJjOTcwMTc0N2RhNWQzZjIxNDFiZWFkYjJiZDJlODkyMDZiZDdiZTFkNzA5NDE5
Y2ExYWI0MmZkZTM5Nzc1M2MwHwYKYIZIAYb4RQEGBgQRFg9DRUlNS0ZJSElKUVRUTlIwDQYJ
KoZIhvcNAQEEBQADgYEAh+ml9gsLTJkzGnrWFOqqtPUAKaChiA4bsUxNmFZkLXCaoWrrJN4V
p5DwQKeZxg9qEbZ/UHMDO9MiHh7CuWHr3yFAlWixeE/aCucEUrVGdvhF/g552toGaAQ+XBbQ
/u5u0b4V4g8hgegjWeX2RDUH0NVBRuVrK067k9tNU8ed674wggJ5MIIB4qADAgECAhA1EaVS
kG/n0CmkQBnUEfw+MA0GCSqGSIb3DQEBAgUAMF8xCzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5W
ZXJpU2lnbiwgSW5jLjE3MDUGA1UECxMuQ2xhc3MgMSBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZp
Y2F0aW9uIEF1dGhvcml0eTAeFw05NjA2MjcwMDAwMDBaFw05NzA2MjcyMzU5NTlaMGIxETAP
BgNVBAcTCEludGVybmV0MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE0MDIGA1UECxMrVmVy
aVNpZ24gQ2xhc3MgMSBDQSAtIEluZGl2aWR1YWwgU3Vic2NyaWJlcjCBnzANBgkqhkiG9w0B
AQEFAAOBjQAwgYkCgYEAthSmz03QBQ3YyiPQb6q0KZJjjiz4b5bXLp12SxGxNo1XycP9HMa6
/h4IujPKleq+41vNBqi3eR1EKu1z8rFSg2gQcGSR1z5r+fddnRRDm26XRZiBR9Ety927ctdM
P3Gq4kDyVDm8Fu7PfOy62z9sKrMWsYYSna6TNNW41dD3PqkCAwEAAaMzMDEwDwYDVR0TBAgw
BgEB/wIBATALBgNVHQ8EBAMCAQYwEQYJYIZIAYb4QgEBBAQDAgIEMA0GCSqGSIb3DQEBAgUA
A4GBACnlx6AZp28UQoJNIzPXvZg6aXcabIqSJ2vyfAzhxFLg+JzjQK+PsToO90gZdNup+wZO
eQNsLwDBqO/pCk2fqx2hQw3JquDvq8xa4tkSDnhgJ3I9SHBqbQEIb16CIRTBuCZc4NSpR2R6
suw943se/M3ElO5CjrvH+bQF9Ywt/rE6MIICMTCCAZoCBQKkAAABMA0GCSqGSIb3DQEBAgUA
MF8xCzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE3MDUGA1UECxMuQ2xh
c3MgMSBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw05NjAxMjkw
MDAwMDBaFw05OTEyMzEyMzU5NTlaMF8xCzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2ln
biwgSW5jLjE3MDUGA1UECxMuQ2xhc3MgMSBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9u
IEF1dGhvcml0eTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA5Rm/baNWYS2ZSHH2Z965
jeu3noaACpEO+jglr0aIguVzqKCbJF0NH8xlbgyw0FaEGIeaBpsQoXPftFg5a27B9hXVqKg/
qhIGjTGsf7A01480Z4gJzRQR4k5FVmkfeAKA2txHkSm7NsljXMXg1y2He6G3MrB7MLoqLzGq
7qNn2tsCAwEAATANBgkqhkiG9w0BAQIFAAOBgQBSc7qaVdzcP4J9sJCYYiqCTHYAbiU91cIJ
cFcBDA93Hxih+xxgDqB1O0khQf6nXC1MQknT/yjYjOqd/skH4neCUyPeVfPORJP6+ky9yjbz
W2aynsjyDF5e1KG0IQkzyjtZ/JLCOPyt2ZYk4C36oyn1M2h4TrS8n2k14qiYlHM7xDGCAVow
ggFWAgEBMHYwYjERMA8GA1UEBxMISW50ZXJuZXQxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMu
MTQwMgYDVQQLEytWZXJpU2lnbiBDbGFzcyAxIENBIC0gSW5kaXZpZHVhbCBTdWJzY3JpYmVy
AhAGMyphYEYkQFAzLoWbRIvvMAkGBSsOAwIaBQCgfTAYBgkqhkiG9w0BCQMxCwYJKoZIhvcN
AQcBMCMGCSqGSIb3DQEJBDEWBBQDsE2vQwHXuKFgiHCH7Dtw2uV5JTAcBgkqhkiG9w0BCQUx
DxcNOTcwNjI1MDg1NjM1WjAeBgkqhkiG9w0BCQ8xETAPMA0GCCqGSIb3DQMCAgEoMA0GCSqG
SIb3DQEBAQUABEBdsj1bREuUiEgmFyzHXo6EgCknbXKMkgw9I5Fpzpqc7Naz7RujXBkoVaX9
A5FGyZxAsS7OlYMqDWv4JfN1Db3x
--------------msC04D7061B3798BD29F7826B0--



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

Date: Tue, 24 Jun 1997 15:19:34 -0600
From: Keys <keys@babylon5fan.corn>
Subject: Re: perl script on WinNT
Message-Id: <33B039E6.9FE8A167@babylon5fan.corn>

Miko3aj Morzy wrote:
> 
> on Unix machines every script begins with #!/usr/bin/perl or whatever
> the path to the interpreter is. How does this line look like on Windows
> NT machine (assuming interpreter perl386.exe)? I still get 500 server
> error and I would appreciate your help.
> Please help me- I'm getting more and more desperate
>     Kola
On Win32 machines that line is ignored.  You put your interpreter in
your path and/or find some setting in your webserver for the interpreter
path...
-- 
Keys
Spam sucks.  To reply, please change "corn" to "com" in my return
address...


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

Date: Wed, 25 Jun 1997 10:33:47 -0500
From: acs@bitstream.net (Adam Schneider)
Subject: Re: Q: MacPerl, MacHTTP and CGI
Message-Id: <acs-2506971033480001@acs.bitstream.net>

Mousheng Xu <mxu@eecs.ukans.edu> wrote:

>         1. What is the difference of "MacPerl" and UNIX perl? As I posted
> in the newsgroup;

Very little difference.  The biggest and most bothersome discrepancies, as
I see them, are: (1) It's hard to give MacPerl anything resembling
command-line input, and (2) You don't have all the nifty $ENV variables in
MacPerl (stuff like HTTP referers, remote hosts, etc.).

>         2. what should I do to the perl scripts? Should I run and save it
> as another file in another format or just leave it? 

If the code is pretty simple, you shouldn't have to do anything to the
scripts, unless there are file pathways, in which case you have to use
colons instead of slashes to separate directories.

Open the scripts in MacPerl and use "Save As..." to save them in your
MacHTTP directory as CGI Scripts, with filenames ending in ".cgi".  Cross
your fingers and fire it up.

By the way, you might want to check out Quid Pro Quo instead of MacHTTP. 
It's freeware, and it's fast.  http://www.socialeng.com/


=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Adam Schneider * schneider@pobox.com * http://pobox.com/~schneider/adam.html
Co-author of "The Web Server Handbook": http://www.prenhall.com/~palmer/
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=


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

Date: Wed, 25 Jun 1997 09:05:29 -0700
From: Tom Phoenix <rootbeer@teleport.com>
To: schneider@pobox.com
Subject: Re: Q: MacPerl, MacHTTP and CGI
Message-Id: <Pine.GSO.3.96.970625090139.15150V-100000@kelly.teleport.com>

On Wed, 25 Jun 1997, Adam Schneider wrote:

> You don't have all the nifty $ENV variables in
> MacPerl (stuff like HTTP referers, remote hosts, etc.).

That's not correct, as far as I know. There are other %ENV variables which
are different on different systems, of course, but when those are supposed
to be there, they are, AFAIK. Hope this helps!

-- 
Tom Phoenix           http://www.teleport.com/~rootbeer/
rootbeer@teleport.com  PGP   Skribu al mi per Esperanto!
Randal Schwartz Case:  http://www.rahul.net/jeffrey/ovs/



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

Date: Wed, 25 Jun 1997 12:19:20 -0400
From: Brandon <weekend_warrior@mindless.com>
Subject: Re: reading a data file?
Message-Id: <33B14508.AB6FBC3E@mindless.com>

Thank you all who helped!
The script is working.

Thank you again.... especially Andrew...;)

Brandon.
-- 
___________________________________
Out the modem, through the firewall, off the router, over the T1...
Nothing but NET.
_________________________
http://www.cois.on.ca/~rythum


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

Date: 25 Jun 1997 08:27:25 -0700
From: Randal Schwartz <merlyn@stonehenge.com>
To: John Callender <jbc@west.net>
Subject: Re: regex question
Message-Id: <8ck9jiaejm.fsf@gadget.cscaper.com>

>>>>> "John" == John Callender <jbc@west.net> writes:

John> Apologies, by the way, for ripping off Randall's intellectual property.
John> Something tells me, though, he's probably seen enough of courtrooms to
John> last him a lifetime, and won't sue for copyright infringement. And I'm
John> feeling frisky, anyway, because I just signed up for the O'Reilly Perl
John> Conference (Aug. 19-21 at the Fairmont Hotel in San Jose), and plunking
John> down $795 on my Amex for the full conference plus tchrist's tutorial
John> makes me feel like someone special. Hopefully some of that money will
John> actually go to Tom, Randall, and Larry. In any event, I'm bringing my
John> new Camel book and hoping to get autographs from all three.

Stealing (small) stuff from the llama, I can tolerate.

Spelling my name with an extra L more than once -- that's grounds for
a lawsuit.

:-)

print "Just another Perl hacker," # but not what the media calls "hacker!" :-)
## legal fund: $20,495.69 collected, $182,159.85 spent; just 433 more days
## before I go to *prison* for 90 days; email fund@stonehenge.com for details

-- 
Name: Randal L. Schwartz / Stonehenge Consulting Services (503)777-0095
Keywords: Perl training, UNIX[tm] consulting, video production, skiing, flying
Email: <merlyn@stonehenge.com> Snail: (Call) PGP-Key: (finger merlyn@ora.com)
Web: <A HREF="http://www.stonehenge.com/merlyn/">My Home Page!</A>
Quote: "I'm telling you, if I could have five lines in my .sig, I would!" -- me


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

Date: 25 Jun 1997 15:58:23 GMT
From: andrew@pimlott.student.harvard.edu (Andrew Pimlott)
Subject: Regexps on streams
Message-Id: <slrn5r2g3c.qni.andrew@pimlott.student.harvard.edu>
Keywords: regular expression, regexp, stream, filehandle

This is a "missing feature" that's been bugging me for a while, and since
recently saw a snippet about it existing in some other language, I have to
ask:  Has anyone thought about making it possible to use regular expressions
on streams?  Suppose I want to find the term 'Camelus dromedarius' in my
(long--ie, I don't want to read the whole thing in as a string) paper, but
the words might be split by a line break.  I want to do something like:

open IN, 'paper' || die $!;
if (IN =~ /Camelus\s+dromedarius/) { print "got it" }

I know there are many existing ways to do this--get the input by paragraph,
or two lines at a time, or just look for the first word alone, then for the
second.  I can also see several potential pitfalls to searching
streams--such as excessive backtracking caused by badly crafted expressions.
I just want to know whether anyone else thinks this would be at all useful.

(Hmm...  An interesting and clever solution would be to have the regexp
engine call some user-specified function to get another line (or other
chunk) of data when it gets to the end of the string, and continue trying to
match on the concatenated strings....)

Andrew


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

Date: Wed, 25 Jun 1997 09:22:07 -0700
From: Tom Phoenix <rootbeer@teleport.com>
To: pimlott@math.harvard.edu
Subject: Re: Regexps on streams
Message-Id: <Pine.GSO.3.96.970625091334.15150W-100000@kelly.teleport.com>

On 25 Jun 1997, Andrew Pimlott wrote:

> Has anyone thought about making it possible to use regular expressions
> on streams?  

Yes, and some regular expressions would require loading the entire stream
into memory to search efficiently.

     /(\b\w+\b).*\b\1\b/s

Of course, you wouldn't have to require the implementation to be efficient
if the user supplied that expression! :-) 

> I just want to know whether anyone else thinks this would be at all
> useful. 

Maybe useful enough to implement as a module, but I don't think there's
any need for it in the core. If you do make such a module, be sure to
include the oft-desired ability to read input up to a regular expression
as a delimiter, analogous to the use of $/ in the line input operator. 
Thanks! 

-- 
Tom Phoenix           http://www.teleport.com/~rootbeer/
rootbeer@teleport.com  PGP   Skribu al mi per Esperanto!
Randal Schwartz Case:  http://www.rahul.net/jeffrey/ovs/



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

Date: Wed, 25 Jun 1997 11:15:03 +0100
From: Simon Fairey <sfairey@adc.metrica.co.uk>
To: Aldoliu Chan <chiyung@b1.hkstar.com>
Subject: Re: Retreive html document by PERL
Message-Id: <33B0EFA7.1CFB@adc.metrica.co.uk>

Aldoliu Chan wrote:
> 
> Hi,
>    Is there a http module for PERL? I think it help me simply the work
> b'cos now i get the html document by telnetting to the port 80 of the host
> and send "GET" method to it. Thanks for any help!
> 
> Cheers,
> Aldoliu Chan
> ==========================================================================
> Senior Programmer                           e-mail: aldoliu@mailhost.net
> Citybus Limited                                     chiyung@hkstar.com
> (HONG KONG)                                         isbyron@citybus.com.hk

Look into the LWP and libwww modules they have everything you will
require. If you just want to get the contents of a URL then look at the
'GET' script which comes with libwww.

Simon


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

Date: 24 Jun 1997 23:07:13 -0400
From: clay@panix.com (Clay Irving)
Subject: Re: Validating E-Mail addresses and URL's
Message-Id: <5oq211$qgo@panix.com>

In <33b04ef4.9187588@news.alt.net> mwt@cyberg8t.com (Mark Thompson) writes:

>I'm writing a program and need to validate e-mail addresses and URLs
>to make sure they're correct.

>It seems that the patterns of these must follow:

>	e-mail:
>		<VALID_MAILADDRESS> '@' <VALID_DOMAIN>

Nope.

Use dejanews and search this newsgroup -- The subject has been discussed 
and discussed and discussed and discussed -- As recently as a day or two 
ago...

-- 
Clay Irving                                        See the happy moron,
clay@panix.com                                     He doesn't give a damn,
http://www.panix.com/~clay                         I wish I were a moron,
                                                   My God! Perhaps I am!


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

Date: Wed, 25 Jun 1997 08:32:18 -0700
From: Tom Phoenix <rootbeer@teleport.com>
To: Wade Williams <wwilliam@cisco.com>
Subject: Re: What does <<END do?
Message-Id: <Pine.GSO.3.96.970625082828.15150R-100000@kelly.teleport.com>

On Wed, 25 Jun 1997, Wade Williams wrote:

> Subject: What does <<END do?

It introduces a here-document, as described in perldata.

> Can't find string terminator "END" anywhere before EOF at ./test.cgi

You have whitespace before or after the "END", so Perl doesn't recognize
that token. Put it on a line all by itself. Hope this helps!

-- 
Tom Phoenix           http://www.teleport.com/~rootbeer/
rootbeer@teleport.com  PGP   Skribu al mi per Esperanto!
Randal Schwartz Case:  http://www.rahul.net/jeffrey/ovs/



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

Date: Wed, 25 Jun 1997 16:32:57 +0100
From: Simon Fairey <sfairey@adc.metrica.co.uk>
To: Wade Williams <wwilliam@cisco.com>
Subject: Re: What does <<END do?
Message-Id: <33B13A29.6956@adc.metrica.co.uk>

Wade Williams wrote:
> 
>        sub print_tail {
>           print <<END;
>         <HR>
>         <ADDRESS>Lincoln D. Stein</ADDRESS><BR>
>         <A HREF="/">Home Page</A>
>         END
>         }
> 
> In the above code, I can surmise that the "print <<END" line says "Print
> until you reach an END."  Is that correct?
> 

Yep it certainly is..

> If so, why do I get:
> 
> Can't find string terminator "END" anywhere before EOF at ./test.cgi line 77.

Because the END it is looking for is "END", i.e. no spaces/indentation
etc. When using the string terminator it must always be the first thing
on the line. ( This is true of all shell script languages, I believe )

> 
> Sorry for the newbieness of the question, but I wasn't able to find any
> documentation on the use of END.
> 

This will be because you can actually use any string you like, popular
ones are EOT, EOF, EOS etc...
I haven't checked the FAQ but something might be in there regarding this
but with a different subject line.

Afterthought: Try looking into file and i/o redirection as that is what
it is essentially doing.

Simon


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

Date: Wed, 25 Jun 1997 09:05:14 GMT
From: "Mark J. Gardner" <mjg@oms.com>
Subject: Re: what is my, lc and etc and where to learn it?
Message-Id: <ECBqwv.5n7@nonexistent.com>

This is a cryptographically signed message in MIME format.

--------------ms42B602337ABF9A5F39869970
Content-Type: multipart/mixed; boundary="------------6EDCB6AEB0327B4D8EF7B260"

This is a multi-part message in MIME format.
--------------6EDCB6AEB0327B4D8EF7B260
Content-Type: text/plain; charset=us-ascii
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Content-Transfer-Encoding: 7bit

mike mah wrote:

> hi perl gurus,

I'm not one, but I'll answer anyway. :-)

>         I feel so strange, you know. Although I finished reading
> Learning
> Perl, I never encounter my, lc and etc. Why is that so? Where can I
> get to
> learn complete (probably advance features) set of command (like
> above)?

'Learning Perl' only covers up to Perl 4. Perl 5 features like my()
weren't around at the time.

A second edition, covering Perl 5, is due out next month. See
"http://www.ora.com/catalog/lperl2/" for details.

 --MJG


--
Mark J. Gardner * mjg@oms.com * http://www.oms.com/mjg/

"Religion is the anthropomorphizing of reality." -- Kurt Harland,
8/18/95


--------------6EDCB6AEB0327B4D8EF7B260
Content-Type: text/x-vcard; charset=us-ascii; name="vcard.vcf"
Content-Transfer-Encoding: 7bit
Content-Description: Card for Mark Gardner
Content-Disposition: attachment; filename="vcard.vcf"

begin:          vcard
fn:             Mark Gardner
n:              Gardner;Mark
org:            http://www.oms.com/
adr:            49 Court Street;;Apartment #2;Flemington;NJ;08822;USA
email;internet: mjg@oms.com
title:          Webmaster
tel;work:       908-423-2773
tel;fax:        908-735-1138
tel;home:       908-806-8050
note:           My day job is Headquarters Webmaster for Merck & Co., Inc. (http://www.merck.com/).
x-mozilla-cpt:  ;0
x-mozilla-html: TRUE
end:            vcard


--------------6EDCB6AEB0327B4D8EF7B260--

--------------ms42B602337ABF9A5F39869970
Content-Type: application/x-pkcs7-signature; name="smime.p7s"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="smime.p7s"
Content-Description: S/MIME Cryptographic Signature

MIIQuwYJKoZIhvcNAQcCoIIQrDCCEKgCAQExCzAJBgUrDgMCGgUAMAsGCSqGSIb3DQEHAaCC
DykwggpzMIIJ3KADAgECAhAGMyphYEYkQFAzLoWbRIvvMA0GCSqGSIb3DQEBBAUAMGIxETAP
BgNVBAcTCEludGVybmV0MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE0MDIGA1UECxMrVmVy
aVNpZ24gQ2xhc3MgMSBDQSAtIEluZGl2aWR1YWwgU3Vic2NyaWJlcjAeFw05NzA2MTEwMDAw
MDBaFw05ODA2MTEyMzU5NTlaMIIBGjERMA8GA1UEBxMISW50ZXJuZXQxFzAVBgNVBAoTDlZl
cmlTaWduLCBJbmMuMTQwMgYDVQQLEytWZXJpU2lnbiBDbGFzcyAxIENBIC0gSW5kaXZpZHVh
bCBTdWJzY3JpYmVyMUYwRAYDVQQLEz13d3cudmVyaXNpZ24uY29tL3JlcG9zaXRvcnkvQ1BT
IEluY29ycC4gYnkgUmVmLixMSUFCLkxURChjKTk2MTswOQYDVQQLEzJEaWdpdGFsIElEIENs
YXNzIDEgLSBOZXRzY2FwZSBGdWxsIFNlcnZpY2UgUGFydG5lcjEVMBMGA1UEAxMMTWFyayBH
YXJkbmVyMRowGAYJKoZIhvcNAQkBFgttamdAb21zLmNvbTBcMA0GCSqGSIb3DQEBAQUAA0sA
MEgCQQDC36rveKhe7MaciKUR9V9FkvodHSh1sN4crhU/L/O2K83h7+8kAo5JOjXv96SnX0iL
tn+05AXRJ6mGn0l4ZdxnAgMBAAGjggeyMIIHrjAJBgNVHRMEAjAAMIICHwYDVR0DBIICFjCC
AhIwggIOMIICCgYLYIZIAYb4RQEHAQEwggH5FoIBp1RoaXMgY2VydGlmaWNhdGUgaW5jb3Jw
b3JhdGVzIGJ5IHJlZmVyZW5jZSwgYW5kIGl0cyB1c2UgaXMgc3RyaWN0bHkgc3ViamVjdCB0
bywgdGhlIFZlcmlTaWduIENlcnRpZmljYXRpb24gUHJhY3RpY2UgU3RhdGVtZW50IChDUFMp
LCBhdmFpbGFibGUgYXQ6IGh0dHBzOi8vd3d3LnZlcmlzaWduLmNvbS9DUFM7IGJ5IEUtbWFp
bCBhdCBDUFMtcmVxdWVzdHNAdmVyaXNpZ24uY29tOyBvciBieSBtYWlsIGF0IFZlcmlTaWdu
LCBJbmMuLCAyNTkzIENvYXN0IEF2ZS4sIE1vdW50YWluIFZpZXcsIENBIDk0MDQzIFVTQSBU
ZWwuICsxICg0MTUpIDk2MS04ODMwIENvcHlyaWdodCAoYykgMTk5NiBWZXJpU2lnbiwgSW5j
LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4gQ0VSVEFJTiBXQVJSQU5USUVTIERJU0NMQUlNRUQg
YW5kIExJQUJJTElUWSBMSU1JVEVELqAOBgxghkgBhvhFAQcBAQGhDgYMYIZIAYb4RQEHAQEC
MCwwKhYoaHR0cHM6Ly93d3cudmVyaXNpZ24uY29tL3JlcG9zaXRvcnkvQ1BTIDARBglghkgB
hvhCAQEEBAMCB4AwNgYJYIZIAYb4QgEIBCkWJ2h0dHBzOi8vd3d3LnZlcmlzaWduLmNvbS9y
ZXBvc2l0b3J5L0NQUzCCBIcGCWCGSAGG+EIBDQSCBHgWggR0Q0FVVElPTjogVGhlIENvbW1v
biBOYW1lIGluIHRoaXMgQ2xhc3MgMSBEaWdpdGFsIApJRCBpcyBub3QgYXV0aGVudGljYXRl
ZCBieSBWZXJpU2lnbi4gSXQgbWF5IGJlIHRoZQpob2xkZXIncyByZWFsIG5hbWUgb3IgYW4g
YWxpYXMuIFZlcmlTaWduIGRvZXMgYXV0aC0KZW50aWNhdGUgdGhlIGUtbWFpbCBhZGRyZXNz
IG9mIHRoZSBob2xkZXIuCgpUaGlzIGNlcnRpZmljYXRlIGluY29ycG9yYXRlcyBieSByZWZl
cmVuY2UsIGFuZCAKaXRzIHVzZSBpcyBzdHJpY3RseSBzdWJqZWN0IHRvLCB0aGUgVmVyaVNp
Z24gCkNlcnRpZmljYXRpb24gUHJhY3RpY2UgU3RhdGVtZW50IChDUFMpLCBhdmFpbGFibGUK
aW4gdGhlIFZlcmlTaWduIHJlcG9zaXRvcnkgYXQ6IApodHRwczovL3d3dy52ZXJpc2lnbi5j
b207IGJ5IEUtbWFpbCBhdApDUFMtcmVxdWVzdHNAdmVyaXNpZ24uY29tOyBvciBieSBtYWls
IGF0IFZlcmlTaWduLApJbmMuLCAyNTkzIENvYXN0IEF2ZS4sIE1vdW50YWluIFZpZXcsIENB
IDk0MDQzIFVTQQoKQ29weXJpZ2h0IChjKTE5OTYgVmVyaVNpZ24sIEluYy4gIEFsbCBSaWdo
dHMgClJlc2VydmVkLiBDRVJUQUlOIFdBUlJBTlRJRVMgRElTQ0xBSU1FRCBBTkQgCkxJQUJJ
TElUWSBMSU1JVEVELgoKV0FSTklORzogVEhFIFVTRSBPRiBUSElTIENFUlRJRklDQVRFIElT
IFNUUklDVExZClNVQkpFQ1QgVE8gVEhFIFZFUklTSUdOIENFUlRJRklDQVRJT04gUFJBQ1RJ
Q0UKU1RBVEVNRU5ULiAgVEhFIElTU1VJTkcgQVVUSE9SSVRZIERJU0NMQUlNUyBDRVJUQUlO
CklNUExJRUQgQU5EIEVYUFJFU1MgV0FSUkFOVElFUywgSU5DTFVESU5HIFdBUlJBTlRJRVMK
T0YgTUVSQ0hBTlRBQklMSVRZIE9SIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgpQVVJQT1NF
LCBBTkQgV0lMTCBOT1QgQkUgTElBQkxFIEZPUiBDT05TRVFVRU5USUFMLApQVU5JVElWRSwg
QU5EIENFUlRBSU4gT1RIRVIgREFNQUdFUy4gU0VFIFRIRSBDUFMKRk9SIERFVEFJTFMuCgpD
b250ZW50cyBvZiB0aGUgVmVyaVNpZ24gcmVnaXN0ZXJlZApub252ZXJpZmllZFN1YmplY3RB
dHRyaWJ1dGVzIGV4dGVuc2lvbiB2YWx1ZSBzaGFsbCAKbm90IGJlIGNvbnNpZGVyZWQgYXMg
YWNjdXJhdGUgaW5mb3JtYXRpb24gdmFsaWRhdGVkIApieSB0aGUgSUEuMIGGBgpghkgBhvhF
AQYDBHgWdmQ0NjUyYmQ2M2YyMDQ3MDI5Mjk4NzYzYzlkMmYyNzUwNjljNzM1OWJlZDFiMDU5
ZGE3NWJjNGJjOTcwMTc0N2RhNWQzZjIxNDFiZWFkYjJiZDJlODkyMDZiZDdiZTFkNzA5NDE5
Y2ExYWI0MmZkZTM5Nzc1M2MwHwYKYIZIAYb4RQEGBgQRFg9DRUlNS0ZJSElKUVRUTlIwDQYJ
KoZIhvcNAQEEBQADgYEAh+ml9gsLTJkzGnrWFOqqtPUAKaChiA4bsUxNmFZkLXCaoWrrJN4V
p5DwQKeZxg9qEbZ/UHMDO9MiHh7CuWHr3yFAlWixeE/aCucEUrVGdvhF/g552toGaAQ+XBbQ
/u5u0b4V4g8hgegjWeX2RDUH0NVBRuVrK067k9tNU8ed674wggJ5MIIB4qADAgECAhA1EaVS
kG/n0CmkQBnUEfw+MA0GCSqGSIb3DQEBAgUAMF8xCzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5W
ZXJpU2lnbiwgSW5jLjE3MDUGA1UECxMuQ2xhc3MgMSBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZp
Y2F0aW9uIEF1dGhvcml0eTAeFw05NjA2MjcwMDAwMDBaFw05NzA2MjcyMzU5NTlaMGIxETAP
BgNVBAcTCEludGVybmV0MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE0MDIGA1UECxMrVmVy
aVNpZ24gQ2xhc3MgMSBDQSAtIEluZGl2aWR1YWwgU3Vic2NyaWJlcjCBnzANBgkqhkiG9w0B
AQEFAAOBjQAwgYkCgYEAthSmz03QBQ3YyiPQb6q0KZJjjiz4b5bXLp12SxGxNo1XycP9HMa6
/h4IujPKleq+41vNBqi3eR1EKu1z8rFSg2gQcGSR1z5r+fddnRRDm26XRZiBR9Ety927ctdM
P3Gq4kDyVDm8Fu7PfOy62z9sKrMWsYYSna6TNNW41dD3PqkCAwEAAaMzMDEwDwYDVR0TBAgw
BgEB/wIBATALBgNVHQ8EBAMCAQYwEQYJYIZIAYb4QgEBBAQDAgIEMA0GCSqGSIb3DQEBAgUA
A4GBACnlx6AZp28UQoJNIzPXvZg6aXcabIqSJ2vyfAzhxFLg+JzjQK+PsToO90gZdNup+wZO
eQNsLwDBqO/pCk2fqx2hQw3JquDvq8xa4tkSDnhgJ3I9SHBqbQEIb16CIRTBuCZc4NSpR2R6
suw943se/M3ElO5CjrvH+bQF9Ywt/rE6MIICMTCCAZoCBQKkAAABMA0GCSqGSIb3DQEBAgUA
MF8xCzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE3MDUGA1UECxMuQ2xh
c3MgMSBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw05NjAxMjkw
MDAwMDBaFw05OTEyMzEyMzU5NTlaMF8xCzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2ln
biwgSW5jLjE3MDUGA1UECxMuQ2xhc3MgMSBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9u
IEF1dGhvcml0eTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA5Rm/baNWYS2ZSHH2Z965
jeu3noaACpEO+jglr0aIguVzqKCbJF0NH8xlbgyw0FaEGIeaBpsQoXPftFg5a27B9hXVqKg/
qhIGjTGsf7A01480Z4gJzRQR4k5FVmkfeAKA2txHkSm7NsljXMXg1y2He6G3MrB7MLoqLzGq
7qNn2tsCAwEAATANBgkqhkiG9w0BAQIFAAOBgQBSc7qaVdzcP4J9sJCYYiqCTHYAbiU91cIJ
cFcBDA93Hxih+xxgDqB1O0khQf6nXC1MQknT/yjYjOqd/skH4neCUyPeVfPORJP6+ky9yjbz
W2aynsjyDF5e1KG0IQkzyjtZ/JLCOPyt2ZYk4C36oyn1M2h4TrS8n2k14qiYlHM7xDGCAVow
ggFWAgEBMHYwYjERMA8GA1UEBxMISW50ZXJuZXQxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMu
MTQwMgYDVQQLEytWZXJpU2lnbiBDbGFzcyAxIENBIC0gSW5kaXZpZHVhbCBTdWJzY3JpYmVy
AhAGMyphYEYkQFAzLoWbRIvvMAkGBSsOAwIaBQCgfTAYBgkqhkiG9w0BCQMxCwYJKoZIhvcN
AQcBMCMGCSqGSIb3DQEJBDEWBBSzhQNLuRhb6sWJZj3fE1fuBAU6RTAcBgkqhkiG9w0BCQUx
DxcNOTcwNjI1MDkwNTE1WjAeBgkqhkiG9w0BCQ8xETAPMA0GCCqGSIb3DQMCAgEoMA0GCSqG
SIb3DQEBAQUABEAKUGzDkvmWeFCB6VKohJ3OPI3wgzo3nQ1zt/zsTqeDyXfB2qw+2EkjCEX8
qd552A1XaLS4zNW3cQhe0KFJRkrk
--------------ms42B602337ABF9A5F39869970--



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

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

To submit articles to comp.lang.perl.misc (and this Digest), send your
article to perl-users@ruby.oce.orst.edu.

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.

The Meta-FAQ, an article containing information about the FAQ, is
available by requesting "send perl-users meta-faq". The real FAQ, as it
appeared last in the newsgroup, can be retrieved with the request "send
perl-users FAQ". Due to their sizes, neither the Meta-FAQ nor the FAQ
are included in the digest.

The "mini-FAQ", which is an updated version of the Meta-FAQ, is
available by requesting "send perl-users mini-faq". It appears twice
weekly in the group, but is not distributed in the digest.

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 V8 Issue 662
*************************************

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