[7247] in Perl-Users-Digest

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

Perl-Users Digest, Issue: 872 Volume: 8

daemon@ATHENA.MIT.EDU (Perl-Users Digest)
Fri Aug 15 08:37:15 1997

Date: Fri, 15 Aug 97 05:00:37 -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           Fri, 15 Aug 1997     Volume: 8 Number: 872

Today's topics:
     Re: a perl4 question <merlyn@stonehenge.com>
     Re: about -e and getting filenames <tom@mitra.phys.uit.no>
     Re: Begginner need simple script (Tad McClellan)
     Re: Extracting HTML links to ASCII (Eric Bohlman)
     Re: Generic script in Perl (Tad McClellan)
     Re: hash of hashes of arrays <tom@mitra.phys.uit.no>
     How do I make my hash remember the order elements are i <mag@contact.com.sg>
     How do I make my hash remember the order elements are i <mag@contact.com.sg>
     How do I make my hash remember the order elements are i <mag@contact.com.sg>
     Re: makewhatis for Solaris <tom@mitra.phys.uit.no>
     Making a hash remember the order of the inserted elemen <mag@contact.com.sg>
     Re: Skipping portions of text; how? (code included) <tom@mitra.phys.uit.no>
     Re: We Need Help... <tom@mitra.phys.uit.no>
     Digest Administrivia (Last modified: 8 Mar 97) (Perl-Users-Digest Admin)

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

Date: 15 Aug 1997 04:47:38 -0700
From: Randal Schwartz <merlyn@stonehenge.com>
To: Daryl Williams <daryl.williams@tivoli.com>
Subject: Re: a perl4 question
Message-Id: <8c4t8ru0px.fsf@gadget.cscaper.com>

>>>>> "Daryl" == Daryl Williams <daryl.williams@tivoli.com> writes:

Daryl> does anyone know how to do something like the following
Daryl> in perl4:

Daryl> What I need to do is have an array that looks like this conceptually:

Daryl> firstkey, item1, item2, item3
Daryl> secondkey, item1, item2, item3
Daryl> thirdkey, item1, item2, item3

Step one: upgrade to Perl5.004.  All versions of perl prior to 5.004
have CERT-notified bugs that can be exploited to take advantage of any
setuid or proxy id environments (think: CGI).

Then, when you are asking is trivial... and you get a whole lot more
besides!

Perl 4.  Just Say No.

print "Just another Perl hacker," # but not what the media calls "hacker!" :-)
## legal fund: $20,990.69 collected, $186,159.85 spent; just 382 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: 15 Aug 1997 11:12:21 +0000
From: Tom Grydeland <tom@mitra.phys.uit.no>
Subject: Re: about -e and getting filenames
Message-Id: <nqoafijaeei.fsf@mitra.phys.uit.no>

tadmc@flash.net (Tad McClellan) writes:

> Bob Fawcett (bfawcett@myriad.com) wrote:

> :  Take a look at this little bit of code that reads files from the
>                        ^^^^^^^^^^^^^^^^^^

> Or even a littler bit of code ;-)

>     # no need for that @allfiles array...
> 
>     opendir THISDIR, "." || die "could not open the current directory";
>     foreach $allfiles(readdir THISDIR){
>         if (($allfiles=~/^(LQ-).*(.syb)/) && (-M $allfiles > 1)){
>          unlink $allfiles;
>         }
>     }
>     closedir THIDIR;

but considering that unlink will perform a system call, and that it
can take a list of files, wouldn't it be more efficient to do
something like:

unlink grep /^LQ-.*\.syb$/ && -M > 1, readdir THIDIR;

(Yes, I did a slight modification to the pattern, so that it matches
the glob pattern LQ-*.syb .  If that's wrong, just change it back.)

Since grep sets $_ locally and both pattern matching and -X file test
operators work on $_ by default, the resulting expression becomes very
succinct.  (But perhaps not the epitome of maintainability)

If you want it more verbose (and perhaps more readable at the same
time), while keeping the advantage of using unlink only once, any of
these should do:

@allfiles = readdir THIDIR;
@oldfiles = grep((/^LQ-.*\.syb/ && (-M $_ > 1)), @allfiles);
unlink @oldfiles;

# --------------

foreach $file (readdir THIDIR) {
    if ($file =~ /^LQ-.*\.syb$/ && -M $file > 1) {
        push @oldfiles, $file;
    }
}
unlink @oldfiles;


>     Tad McClellan                          SGML Consulting

-- 
//Tom Grydeland <Tom.Grydeland@phys.uit.no>


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

Date: Fri, 15 Aug 1997 05:48:58 -0500
From: tadmc@flash.net (Tad McClellan)
Subject: Re: Begginner need simple script
Message-Id: <q6c1t5.vk.ln@localhost>

Henry Wolff (henrywolff@hatsoftnevada.lovelock.nv.us.nospam) wrote:
: When it comes to programming in other languages, even PC assembler, I do
: fairly well, but this Perl is killing me.
: I need a real simple little script that does the following:

: opens a file that contains:
: variable1a
: variable1b
: variable2a
: variable2b
: etc...

: then reads the file data in, then does this test
: if (variable1a contains testVar) {
:    foundVar = variable1b
: }

: I thought that this would work
: open (COUNT,"$file");
: @lines = (COUNT);
: close (COUNT);
: ($var1, $var2) = @lines;
: foreach ($line(@lines) (
:  if (var1 eq testVar) {
:    foundVar = var2;
:  }
: }

: As simple as that is I can't seem to get it to work right!
: Can anyone please help me!


UNTESTED!

-----------------
$testVar = 'find me';

#always check return value from open()
open (COUNT,"$file") || die "could not open '$file'  $!";
@lines = <COUNT>;       # angle brackets, not parenthesis
close(COUNT);


for ($i=0; $i<@lines; $i += 2) { # every other "line"
   chomp($lines[$i]);                   # trim the newline
   $foundVar = $lines[$i+1] if $lines[$i] eq $testVar;
}
-----------------


--
    Tad McClellan                          SGML Consulting
    tadmc@flash.net                        Perl programming
    Fort Worth, Texas


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

Date: Fri, 15 Aug 1997 11:05:43 GMT
From: ebohlman@netcom.com (Eric Bohlman)
Subject: Re: Extracting HTML links to ASCII
Message-Id: <ebohlmanEEyC5J.vn@netcom.com>

Sanjay Jeer (sjeer@planning.org) wrote:
: Is there a utility or snippet of code that I can use to suck up hundreds
: of HTML files and extract just the links, that is, just the Link Text
: and the underlying URL into a tab separated ASCII table?

: Any help, pointers, references will help. Thanks.

Go to your nearest CPAN site and pick up the HTML module which is part of 
LWP.  HTML::Parse should greatly simplify your task.



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

Date: Fri, 15 Aug 1997 06:09:32 -0500
From: tadmc@flash.net (Tad McClellan)
Subject: Re: Generic script in Perl
Message-Id: <cdd1t5.gn.ln@localhost>

Benjamin Holzman (bholzman@mail.earthlink.net) wrote:


: > My question is:
: > 
: > How can I change this script in order to do this operations in all the htm files
: > of my directory ?
: > 
: >                 Marcantonio Fabra

: You basically have two options-- have the shell determine which files to
: process (by, for instance, calling "change.pl *.htm", or have perl
: determine which files to process, perhaps by giving it a directory name,
: and having the perl script do a readdir and sucking up the file names
: which match, say, /\.htm$/

: I would lean towards the first option, but that could just be personal
: preference.  Here's how to do it:

: foreach $infile (@ARGV) {	# @ARGV will contain every filename
:   open(inpfile,"<$infile");	# the shell sends us.
:   open(outfile,">${infile}l");
:  
:   while ($temp=<impfile>)
:   {
:     <procedimentos>
:     print outfile "$temp";
:   }
:   close impfile;
:   close outfile;
: }

: Here's the second option; let's make the directory hard-coded.

: $my_dir = '/some/path/';

: opendir(DIR, $my_dir) || die "Couldn't opendir $my_dir: $!";
: @files = grep {/\.htm$/} readdir DIR;

: foreach $infile (@files) {
: ....				# from here on out, it's the same...
                                                    ^^^^^^^^^^^^^

except for the open() calls   ;-)

   open(INPFILE,"<$my_dir/$infile") || die ...
   open(OUTFILE,">$my_dir/$infile") || die ...

: Just a suggestion-- you might want to take a look at perl's -i
: command-line switch...

Good suggestion.


--
    Tad McClellan                          SGML Consulting
    tadmc@flash.net                        Perl programming
    Fort Worth, Texas


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

Date: 15 Aug 1997 10:47:30 +0000
From: Tom Grydeland <tom@mitra.phys.uit.no>
Subject: Re: hash of hashes of arrays
Message-Id: <nqobu2zafjx.fsf@mitra.phys.uit.no>

Kerr Tung <kerr_tung@sdt.com> writes:

> Hi all,

Hello,

> view, user, file (files owned by user)
> There are several views and each view has several users and each user
> has several files. I want to be able to store and process what view has
> what users and what user has what files.
> 
> Is some sort of hash of hashes of arrys is the best structure to allow
> me to store and process this kind of data?
> 
> I am thinking of some pseudo perl code like %table{$view}{$user},
> actually the $user should be a pointer to @file, because a user owns
> more than one file. My mind is kind of cloudy now and can't get this
> work right. How should I build this structure and print out each data
> item? Can someone there help?

Why not just try it?

% perl -de 42
[...]

main::(-e:1):   42
  DB<1> $view='v1';$user='joe';

  DB<2> $files{$view}{$user} = ['file1','file2','foo','bar']

# This makes $files{$view}{$user} a reference to the anonymous array
# containing all the files belonging to user 'joe' in view 'v1'.

  DB<4> X files
%files = (
   'v1' => HASH(0x1403943a8)
      'joe' => ARRAY(0x14030add8)
         0  'file1'
         1  'file2'
         2  'foo'
         3  'bar'
)

# I just wanted to be able to say 'X files' :-)

  DB<5> p $files{v1}{joe}->[1]
file2

# Unfortunately, to get the entire list, the syntax needed is a bit
# clumsy (no syntactic sugar available for accessing entire arrays (or
# hashes) at once.

  DB<6> p join "\n", @{$files{v1}{joe}}
file1
file2
foo
bar

  DB<7> p join "\n", @$files{v1}{joe}  
Can't use subscript on hash slice at (eval 75) line 2, near "{joe}"

# As you can see.

> Thanks,

HTH,

> Kerr

-- 
//Tom Grydeland <Tom.Grydeland@phys.uit.no>


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

Date: Fri, 15 Aug 1997 17:56:41 +0800
From: Magdalene Chua <mag@contact.com.sg>
Subject: How do I make my hash remember the order elements are inserted?
Message-Id: <33F427D8.EFB7070A@contact.com.sg>

Is there any way I can make my hash remember the order in which I put
elements into it? I read somewhere about Tie::IxHash that does exactly
this, but I don't know how to use it. If anyone has any simple source
code to demonstrate this function, I'll appreciate it very much.

Thanks in advance.




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

Date: Fri, 15 Aug 1997 17:57:54 +0800
From: Magdalene Chua <mag@contact.com.sg>
Subject: How do I make my hash remember the order elements are inserted?
Message-Id: <33F42822.9AE18B91@contact.com.sg>

This is a cryptographically signed message in MIME format.

--------------ms830787AFE47FED63EBC58787
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

Is there any way I can make my hash remember the order in which I put
elements into it? I read somewhere about Tie::IxHash that does exactly
this, but I don't know how to use it. If anyone has any simple source
code to demonstrate this function, I'll appreciate it very much.

Thanks in advance.

Magdalene Chua


--------------ms830787AFE47FED63EBC58787
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

MIIQjgYJKoZIhvcNAQcCoIIQfzCCEHsCAQExCzAJBgUrDgMCGgUAMAsGCSqGSIb3DQEHAaCC
DvwwggpGMIIJr6ADAgECAhBLhxR9gEnmiZPJhyTKNPdnMA0GCSqGSIb3DQEBBAUAMGIxETAP
BgNVBAcTCEludGVybmV0MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE0MDIGA1UECxMrVmVy
aVNpZ24gQ2xhc3MgMSBDQSAtIEluZGl2aWR1YWwgU3Vic2NyaWJlcjAeFw05NzA2MjUwMDAw
MDBaFw05NzEyMjUyMzU5NTlaMIIBDjERMA8GA1UEBxMISW50ZXJuZXQxFzAVBgNVBAoTDlZl
cmlTaWduLCBJbmMuMTQwMgYDVQQLEytWZXJpU2lnbiBDbGFzcyAxIENBIC0gSW5kaXZpZHVh
bCBTdWJzY3JpYmVyMUYwRAYDVQQLEz13d3cudmVyaXNpZ24uY29tL3JlcG9zaXRvcnkvQ1BT
IEluY29ycC4gYnkgUmVmLixMSUFCLkxURChjKTk2MSYwJAYDVQQLEx1EaWdpdGFsIElEIENs
YXNzIDEgLSBOZXRzY2FwZTEXMBUGA1UEAxMOTWFnZGFsZW5lIENodWExITAfBgkqhkiG9w0B
CQEWEm1hZ0Bjb250YWN0LmNvbS5zZzBcMA0GCSqGSIb3DQEBAQUAA0sAMEgCQQDJMjrKjfG5
4UA11ebkl2g0V6o0/yQOSrCGkRX3PsS6DXc0B6TdLyposir/XSUeA7rt2Zzh9OeGeq+/NT1t
YSDFAgMBAAGjggeRMIIHjTAJBgNVHRMEAjAAMIICHwYDVR0DBIICFjCCAhIwggIOMIICCgYL
YIZIAYb4RQEHAQEwggH5FoIBp1RoaXMgY2VydGlmaWNhdGUgaW5jb3Jwb3JhdGVzIGJ5IHJl
ZmVyZW5jZSwgYW5kIGl0cyB1c2UgaXMgc3RyaWN0bHkgc3ViamVjdCB0bywgdGhlIFZlcmlT
aWduIENlcnRpZmljYXRpb24gUHJhY3RpY2UgU3RhdGVtZW50IChDUFMpLCBhdmFpbGFibGUg
YXQ6IGh0dHBzOi8vd3d3LnZlcmlzaWduLmNvbS9DUFM7IGJ5IEUtbWFpbCBhdCBDUFMtcmVx
dWVzdHNAdmVyaXNpZ24uY29tOyBvciBieSBtYWlsIGF0IFZlcmlTaWduLCBJbmMuLCAyNTkz
IENvYXN0IEF2ZS4sIE1vdW50YWluIFZpZXcsIENBIDk0MDQzIFVTQSBUZWwuICsxICg0MTUp
IDk2MS04ODMwIENvcHlyaWdodCAoYykgMTk5NiBWZXJpU2lnbiwgSW5jLiAgQWxsIFJpZ2h0
cyBSZXNlcnZlZC4gQ0VSVEFJTiBXQVJSQU5USUVTIERJU0NMQUlNRUQgYW5kIExJQUJJTElU
WSBMSU1JVEVELqAOBgxghkgBhvhFAQcBAQGhDgYMYIZIAYb4RQEHAQECMCwwKhYoaHR0cHM6
Ly93d3cudmVyaXNpZ24uY29tL3JlcG9zaXRvcnkvQ1BTIDARBglghkgBhvhCAQEEBAMCB4Aw
NgYJYIZIAYb4QgEIBCkWJ2h0dHBzOi8vd3d3LnZlcmlzaWduLmNvbS9yZXBvc2l0b3J5L0NQ
UzCCBIcGCWCGSAGG+EIBDQSCBHgWggR0Q0FVVElPTjogVGhlIENvbW1vbiBOYW1lIGluIHRo
aXMgQ2xhc3MgMSBEaWdpdGFsIApJRCBpcyBub3QgYXV0aGVudGljYXRlZCBieSBWZXJpU2ln
bi4gSXQgbWF5IGJlIHRoZQpob2xkZXIncyByZWFsIG5hbWUgb3IgYW4gYWxpYXMuIFZlcmlT
aWduIGRvZXMgYXV0aC0KZW50aWNhdGUgdGhlIGUtbWFpbCBhZGRyZXNzIG9mIHRoZSBob2xk
ZXIuCgpUaGlzIGNlcnRpZmljYXRlIGluY29ycG9yYXRlcyBieSByZWZlcmVuY2UsIGFuZCAK
aXRzIHVzZSBpcyBzdHJpY3RseSBzdWJqZWN0IHRvLCB0aGUgVmVyaVNpZ24gCkNlcnRpZmlj
YXRpb24gUHJhY3RpY2UgU3RhdGVtZW50IChDUFMpLCBhdmFpbGFibGUKaW4gdGhlIFZlcmlT
aWduIHJlcG9zaXRvcnkgYXQ6IApodHRwczovL3d3dy52ZXJpc2lnbi5jb207IGJ5IEUtbWFp
bCBhdApDUFMtcmVxdWVzdHNAdmVyaXNpZ24uY29tOyBvciBieSBtYWlsIGF0IFZlcmlTaWdu
LApJbmMuLCAyNTkzIENvYXN0IEF2ZS4sIE1vdW50YWluIFZpZXcsIENBIDk0MDQzIFVTQQoK
Q29weXJpZ2h0IChjKTE5OTYgVmVyaVNpZ24sIEluYy4gIEFsbCBSaWdodHMgClJlc2VydmVk
LiBDRVJUQUlOIFdBUlJBTlRJRVMgRElTQ0xBSU1FRCBBTkQgCkxJQUJJTElUWSBMSU1JVEVE
LgoKV0FSTklORzogVEhFIFVTRSBPRiBUSElTIENFUlRJRklDQVRFIElTIFNUUklDVExZClNV
QkpFQ1QgVE8gVEhFIFZFUklTSUdOIENFUlRJRklDQVRJT04gUFJBQ1RJQ0UKU1RBVEVNRU5U
LiAgVEhFIElTU1VJTkcgQVVUSE9SSVRZIERJU0NMQUlNUyBDRVJUQUlOCklNUExJRUQgQU5E
IEVYUFJFU1MgV0FSUkFOVElFUywgSU5DTFVESU5HIFdBUlJBTlRJRVMKT0YgTUVSQ0hBTlRB
QklMSVRZIE9SIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgpQVVJQT1NFLCBBTkQgV0lMTCBO
T1QgQkUgTElBQkxFIEZPUiBDT05TRVFVRU5USUFMLApQVU5JVElWRSwgQU5EIENFUlRBSU4g
T1RIRVIgREFNQUdFUy4gU0VFIFRIRSBDUFMKRk9SIERFVEFJTFMuCgpDb250ZW50cyBvZiB0
aGUgVmVyaVNpZ24gcmVnaXN0ZXJlZApub252ZXJpZmllZFN1YmplY3RBdHRyaWJ1dGVzIGV4
dGVuc2lvbiB2YWx1ZSBzaGFsbCAKbm90IGJlIGNvbnNpZGVyZWQgYXMgYWNjdXJhdGUgaW5m
b3JtYXRpb24gdmFsaWRhdGVkIApieSB0aGUgSUEuMIGGBgpghkgBhvhFAQYDBHgWdmQ0NjUy
YmQ2M2YyMDQ3MDI5Mjk4NzYzYzlkMmYyNzUwNjljNzM1OWJlZDFiMDU5ZGE3NWJjNGJjOTcw
MTc0N2RhNWQ1ZTYxNDFiZWFkYjJiZDJlODg3MTBhZDZhZjlkNzExNDg5ZWExYmY0M2Y0ZTQ5
MDY1NGEwDQYJKoZIhvcNAQEEBQADgYEAWahQMmTZCTpGdYPZa6ec0pJxxA2lEQVN1gUShjg9
ul2/mf30ysh5n8YB7LQtOxGmNmnYFLpq3z/OqAPEUCo51CnlXEiewXLvkitT1EbzKKGCo+3B
sVh0gj891qzee62qFsLyWpzl6hE88CB952HI5ecfzCT+9clHCjuz87op+WEwggJ5MIIB4qAD
AgECAhBSHzUd8nB+ACu+ylmHBNU5MA0GCSqGSIb3DQEBAgUAMF8xCzAJBgNVBAYTAlVTMRcw
FQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE3MDUGA1UECxMuQ2xhc3MgMSBQdWJsaWMgUHJpbWFy
eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw05NjA2MjcwMDAwMDBaFw05OTA2MjcyMzU5
NTlaMGIxETAPBgNVBAcTCEludGVybmV0MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE0MDIG
A1UECxMrVmVyaVNpZ24gQ2xhc3MgMSBDQSAtIEluZGl2aWR1YWwgU3Vic2NyaWJlcjCBnzAN
BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAthSmz03QBQ3YyiPQb6q0KZJjjiz4b5bXLp12SxGx
No1XycP9HMa6/h4IujPKleq+41vNBqi3eR1EKu1z8rFSg2gQcGSR1z5r+fddnRRDm26XRZiB
R9Ety927ctdMP3Gq4kDyVDm8Fu7PfOy62z9sKrMWsYYSna6TNNW41dD3PqkCAwEAAaMzMDEw
DwYDVR0TBAgwBgEB/wIBATALBgNVHQ8EBAMCAQYwEQYJYIZIAYb4QgEBBAQDAgEGMA0GCSqG
SIb3DQEBAgUAA4GBAMH69wLnV8oRdcacDPord0+HRRc749LB2g9YOY6ulZkDoaihOP55mpMX
C5eGOcfKaDRmu8eIRfbIDAXuvpcl7+DUbuR/nXZczn26FKKuC5/7Z1tIpWclrxlkiPZy2Ckn
qjcSarEoryeDGGVsje1Ank3EeKiG7OksUL+m+Q3bsKZKMIICMTCCAZoCBQKkAAABMA0GCSqG
SIb3DQEBAgUAMF8xCzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE3MDUG
A1UECxMuQ2xhc3MgMSBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAe
Fw05NjAxMjkwMDAwMDBaFw05OTEyMzEyMzU5NTlaMF8xCzAJBgNVBAYTAlVTMRcwFQYDVQQK
Ew5WZXJpU2lnbiwgSW5jLjE3MDUGA1UECxMuQ2xhc3MgMSBQdWJsaWMgUHJpbWFyeSBDZXJ0
aWZpY2F0aW9uIEF1dGhvcml0eTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA5Rm/baNW
YS2ZSHH2Z965jeu3noaACpEO+jglr0aIguVzqKCbJF0NH8xlbgyw0FaEGIeaBpsQoXPftFg5
a27B9hXVqKg/qhIGjTGsf7A01480Z4gJzRQR4k5FVmkfeAKA2txHkSm7NsljXMXg1y2He6G3
MrB7MLoqLzGq7qNn2tsCAwEAATANBgkqhkiG9w0BAQIFAAOBgQBSc7qaVdzcP4J9sJCYYiqC
THYAbiU91cIJcFcBDA93Hxih+xxgDqB1O0khQf6nXC1MQknT/yjYjOqd/skH4neCUyPeVfPO
RJP6+ky9yjbzW2aynsjyDF5e1KG0IQkzyjtZ/JLCOPyt2ZYk4C36oyn1M2h4TrS8n2k14qiY
lHM7xDGCAVowggFWAgEBMHYwYjERMA8GA1UEBxMISW50ZXJuZXQxFzAVBgNVBAoTDlZlcmlT
aWduLCBJbmMuMTQwMgYDVQQLEytWZXJpU2lnbiBDbGFzcyAxIENBIC0gSW5kaXZpZHVhbCBT
dWJzY3JpYmVyAhBLhxR9gEnmiZPJhyTKNPdnMAkGBSsOAwIaBQCgfTAYBgkqhkiG9w0BCQMx
CwYJKoZIhvcNAQcBMCMGCSqGSIb3DQEJBDEWBBSywcHnFRS0iYRmLkniiERTbJshpTAcBgkq
hkiG9w0BCQUxDxcNOTcwODE1MDk1NzU2WjAeBgkqhkiG9w0BCQ8xETAPMA0GCCqGSIb3DQMC
AgEoMA0GCSqGSIb3DQEBAQUABECE1R3nR5+KQnNp4R5AL9vCRTaX6HnQfEq9+2P0uiLcOMBN
+Jo0c7KulymxYN6MJPK6TK79bvMh2U2WOYw+0035
--------------ms830787AFE47FED63EBC58787--



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

Date: Fri, 15 Aug 1997 18:02:11 +0800
From: Magdalene Chua <mag@contact.com.sg>
Subject: How do I make my hash remember the order elements are inserted?
Message-Id: <33F42923.15BCADF3@contact.com.sg>

This is a cryptographically signed message in MIME format.

--------------msE5FEAB6D832BAA63983F81DB
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

Is there any way I can make my hash remember the order in which I put
elements into it? I read somewhere about Tie::IxHash that does exactly
this, but I don't know how to use it. If anyone has any simple source
code to demonstrate this function, I'll appreciate it very much.

Thanks in advance.

Magdalene Chua


--------------msE5FEAB6D832BAA63983F81DB
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

MIIQjgYJKoZIhvcNAQcCoIIQfzCCEHsCAQExCzAJBgUrDgMCGgUAMAsGCSqGSIb3DQEHAaCC
DvwwggpGMIIJr6ADAgECAhBLhxR9gEnmiZPJhyTKNPdnMA0GCSqGSIb3DQEBBAUAMGIxETAP
BgNVBAcTCEludGVybmV0MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE0MDIGA1UECxMrVmVy
aVNpZ24gQ2xhc3MgMSBDQSAtIEluZGl2aWR1YWwgU3Vic2NyaWJlcjAeFw05NzA2MjUwMDAw
MDBaFw05NzEyMjUyMzU5NTlaMIIBDjERMA8GA1UEBxMISW50ZXJuZXQxFzAVBgNVBAoTDlZl
cmlTaWduLCBJbmMuMTQwMgYDVQQLEytWZXJpU2lnbiBDbGFzcyAxIENBIC0gSW5kaXZpZHVh
bCBTdWJzY3JpYmVyMUYwRAYDVQQLEz13d3cudmVyaXNpZ24uY29tL3JlcG9zaXRvcnkvQ1BT
IEluY29ycC4gYnkgUmVmLixMSUFCLkxURChjKTk2MSYwJAYDVQQLEx1EaWdpdGFsIElEIENs
YXNzIDEgLSBOZXRzY2FwZTEXMBUGA1UEAxMOTWFnZGFsZW5lIENodWExITAfBgkqhkiG9w0B
CQEWEm1hZ0Bjb250YWN0LmNvbS5zZzBcMA0GCSqGSIb3DQEBAQUAA0sAMEgCQQDJMjrKjfG5
4UA11ebkl2g0V6o0/yQOSrCGkRX3PsS6DXc0B6TdLyposir/XSUeA7rt2Zzh9OeGeq+/NT1t
YSDFAgMBAAGjggeRMIIHjTAJBgNVHRMEAjAAMIICHwYDVR0DBIICFjCCAhIwggIOMIICCgYL
YIZIAYb4RQEHAQEwggH5FoIBp1RoaXMgY2VydGlmaWNhdGUgaW5jb3Jwb3JhdGVzIGJ5IHJl
ZmVyZW5jZSwgYW5kIGl0cyB1c2UgaXMgc3RyaWN0bHkgc3ViamVjdCB0bywgdGhlIFZlcmlT
aWduIENlcnRpZmljYXRpb24gUHJhY3RpY2UgU3RhdGVtZW50IChDUFMpLCBhdmFpbGFibGUg
YXQ6IGh0dHBzOi8vd3d3LnZlcmlzaWduLmNvbS9DUFM7IGJ5IEUtbWFpbCBhdCBDUFMtcmVx
dWVzdHNAdmVyaXNpZ24uY29tOyBvciBieSBtYWlsIGF0IFZlcmlTaWduLCBJbmMuLCAyNTkz
IENvYXN0IEF2ZS4sIE1vdW50YWluIFZpZXcsIENBIDk0MDQzIFVTQSBUZWwuICsxICg0MTUp
IDk2MS04ODMwIENvcHlyaWdodCAoYykgMTk5NiBWZXJpU2lnbiwgSW5jLiAgQWxsIFJpZ2h0
cyBSZXNlcnZlZC4gQ0VSVEFJTiBXQVJSQU5USUVTIERJU0NMQUlNRUQgYW5kIExJQUJJTElU
WSBMSU1JVEVELqAOBgxghkgBhvhFAQcBAQGhDgYMYIZIAYb4RQEHAQECMCwwKhYoaHR0cHM6
Ly93d3cudmVyaXNpZ24uY29tL3JlcG9zaXRvcnkvQ1BTIDARBglghkgBhvhCAQEEBAMCB4Aw
NgYJYIZIAYb4QgEIBCkWJ2h0dHBzOi8vd3d3LnZlcmlzaWduLmNvbS9yZXBvc2l0b3J5L0NQ
UzCCBIcGCWCGSAGG+EIBDQSCBHgWggR0Q0FVVElPTjogVGhlIENvbW1vbiBOYW1lIGluIHRo
aXMgQ2xhc3MgMSBEaWdpdGFsIApJRCBpcyBub3QgYXV0aGVudGljYXRlZCBieSBWZXJpU2ln
bi4gSXQgbWF5IGJlIHRoZQpob2xkZXIncyByZWFsIG5hbWUgb3IgYW4gYWxpYXMuIFZlcmlT
aWduIGRvZXMgYXV0aC0KZW50aWNhdGUgdGhlIGUtbWFpbCBhZGRyZXNzIG9mIHRoZSBob2xk
ZXIuCgpUaGlzIGNlcnRpZmljYXRlIGluY29ycG9yYXRlcyBieSByZWZlcmVuY2UsIGFuZCAK
aXRzIHVzZSBpcyBzdHJpY3RseSBzdWJqZWN0IHRvLCB0aGUgVmVyaVNpZ24gCkNlcnRpZmlj
YXRpb24gUHJhY3RpY2UgU3RhdGVtZW50IChDUFMpLCBhdmFpbGFibGUKaW4gdGhlIFZlcmlT
aWduIHJlcG9zaXRvcnkgYXQ6IApodHRwczovL3d3dy52ZXJpc2lnbi5jb207IGJ5IEUtbWFp
bCBhdApDUFMtcmVxdWVzdHNAdmVyaXNpZ24uY29tOyBvciBieSBtYWlsIGF0IFZlcmlTaWdu
LApJbmMuLCAyNTkzIENvYXN0IEF2ZS4sIE1vdW50YWluIFZpZXcsIENBIDk0MDQzIFVTQQoK
Q29weXJpZ2h0IChjKTE5OTYgVmVyaVNpZ24sIEluYy4gIEFsbCBSaWdodHMgClJlc2VydmVk
LiBDRVJUQUlOIFdBUlJBTlRJRVMgRElTQ0xBSU1FRCBBTkQgCkxJQUJJTElUWSBMSU1JVEVE
LgoKV0FSTklORzogVEhFIFVTRSBPRiBUSElTIENFUlRJRklDQVRFIElTIFNUUklDVExZClNV
QkpFQ1QgVE8gVEhFIFZFUklTSUdOIENFUlRJRklDQVRJT04gUFJBQ1RJQ0UKU1RBVEVNRU5U
LiAgVEhFIElTU1VJTkcgQVVUSE9SSVRZIERJU0NMQUlNUyBDRVJUQUlOCklNUExJRUQgQU5E
IEVYUFJFU1MgV0FSUkFOVElFUywgSU5DTFVESU5HIFdBUlJBTlRJRVMKT0YgTUVSQ0hBTlRB
QklMSVRZIE9SIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgpQVVJQT1NFLCBBTkQgV0lMTCBO
T1QgQkUgTElBQkxFIEZPUiBDT05TRVFVRU5USUFMLApQVU5JVElWRSwgQU5EIENFUlRBSU4g
T1RIRVIgREFNQUdFUy4gU0VFIFRIRSBDUFMKRk9SIERFVEFJTFMuCgpDb250ZW50cyBvZiB0
aGUgVmVyaVNpZ24gcmVnaXN0ZXJlZApub252ZXJpZmllZFN1YmplY3RBdHRyaWJ1dGVzIGV4
dGVuc2lvbiB2YWx1ZSBzaGFsbCAKbm90IGJlIGNvbnNpZGVyZWQgYXMgYWNjdXJhdGUgaW5m
b3JtYXRpb24gdmFsaWRhdGVkIApieSB0aGUgSUEuMIGGBgpghkgBhvhFAQYDBHgWdmQ0NjUy
YmQ2M2YyMDQ3MDI5Mjk4NzYzYzlkMmYyNzUwNjljNzM1OWJlZDFiMDU5ZGE3NWJjNGJjOTcw
MTc0N2RhNWQ1ZTYxNDFiZWFkYjJiZDJlODg3MTBhZDZhZjlkNzExNDg5ZWExYmY0M2Y0ZTQ5
MDY1NGEwDQYJKoZIhvcNAQEEBQADgYEAWahQMmTZCTpGdYPZa6ec0pJxxA2lEQVN1gUShjg9
ul2/mf30ysh5n8YB7LQtOxGmNmnYFLpq3z/OqAPEUCo51CnlXEiewXLvkitT1EbzKKGCo+3B
sVh0gj891qzee62qFsLyWpzl6hE88CB952HI5ecfzCT+9clHCjuz87op+WEwggJ5MIIB4qAD
AgECAhBSHzUd8nB+ACu+ylmHBNU5MA0GCSqGSIb3DQEBAgUAMF8xCzAJBgNVBAYTAlVTMRcw
FQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE3MDUGA1UECxMuQ2xhc3MgMSBQdWJsaWMgUHJpbWFy
eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw05NjA2MjcwMDAwMDBaFw05OTA2MjcyMzU5
NTlaMGIxETAPBgNVBAcTCEludGVybmV0MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE0MDIG
A1UECxMrVmVyaVNpZ24gQ2xhc3MgMSBDQSAtIEluZGl2aWR1YWwgU3Vic2NyaWJlcjCBnzAN
BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAthSmz03QBQ3YyiPQb6q0KZJjjiz4b5bXLp12SxGx
No1XycP9HMa6/h4IujPKleq+41vNBqi3eR1EKu1z8rFSg2gQcGSR1z5r+fddnRRDm26XRZiB
R9Ety927ctdMP3Gq4kDyVDm8Fu7PfOy62z9sKrMWsYYSna6TNNW41dD3PqkCAwEAAaMzMDEw
DwYDVR0TBAgwBgEB/wIBATALBgNVHQ8EBAMCAQYwEQYJYIZIAYb4QgEBBAQDAgEGMA0GCSqG
SIb3DQEBAgUAA4GBAMH69wLnV8oRdcacDPord0+HRRc749LB2g9YOY6ulZkDoaihOP55mpMX
C5eGOcfKaDRmu8eIRfbIDAXuvpcl7+DUbuR/nXZczn26FKKuC5/7Z1tIpWclrxlkiPZy2Ckn
qjcSarEoryeDGGVsje1Ank3EeKiG7OksUL+m+Q3bsKZKMIICMTCCAZoCBQKkAAABMA0GCSqG
SIb3DQEBAgUAMF8xCzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE3MDUG
A1UECxMuQ2xhc3MgMSBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAe
Fw05NjAxMjkwMDAwMDBaFw05OTEyMzEyMzU5NTlaMF8xCzAJBgNVBAYTAlVTMRcwFQYDVQQK
Ew5WZXJpU2lnbiwgSW5jLjE3MDUGA1UECxMuQ2xhc3MgMSBQdWJsaWMgUHJpbWFyeSBDZXJ0
aWZpY2F0aW9uIEF1dGhvcml0eTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA5Rm/baNW
YS2ZSHH2Z965jeu3noaACpEO+jglr0aIguVzqKCbJF0NH8xlbgyw0FaEGIeaBpsQoXPftFg5
a27B9hXVqKg/qhIGjTGsf7A01480Z4gJzRQR4k5FVmkfeAKA2txHkSm7NsljXMXg1y2He6G3
MrB7MLoqLzGq7qNn2tsCAwEAATANBgkqhkiG9w0BAQIFAAOBgQBSc7qaVdzcP4J9sJCYYiqC
THYAbiU91cIJcFcBDA93Hxih+xxgDqB1O0khQf6nXC1MQknT/yjYjOqd/skH4neCUyPeVfPO
RJP6+ky9yjbzW2aynsjyDF5e1KG0IQkzyjtZ/JLCOPyt2ZYk4C36oyn1M2h4TrS8n2k14qiY
lHM7xDGCAVowggFWAgEBMHYwYjERMA8GA1UEBxMISW50ZXJuZXQxFzAVBgNVBAoTDlZlcmlT
aWduLCBJbmMuMTQwMgYDVQQLEytWZXJpU2lnbiBDbGFzcyAxIENBIC0gSW5kaXZpZHVhbCBT
dWJzY3JpYmVyAhBLhxR9gEnmiZPJhyTKNPdnMAkGBSsOAwIaBQCgfTAYBgkqhkiG9w0BCQMx
CwYJKoZIhvcNAQcBMCMGCSqGSIb3DQEJBDEWBBSywcHnFRS0iYRmLkniiERTbJshpTAcBgkq
hkiG9w0BCQUxDxcNOTcwODE1MTAwMjEyWjAeBgkqhkiG9w0BCQ8xETAPMA0GCCqGSIb3DQMC
AgEoMA0GCSqGSIb3DQEBAQUABEAN9ycAIqkawaRl3B/zB8ZzXfFcf/Vg/yCK/ckibJ/nQBwQ
z80JCbCz3/a7Six27hmw6jIdum/6QTjP3rLXMLiL
--------------msE5FEAB6D832BAA63983F81DB--



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

Date: 15 Aug 1997 11:52:52 +0000
From: Tom Grydeland <tom@mitra.phys.uit.no>
Subject: Re: makewhatis for Solaris
Message-Id: <nqo4t8raciz.fsf@mitra.phys.uit.no>

trey@zipcon.net (Trey Valenta) writes:

> I would like to fix the windex file on my SunOS5.5.1 system so that the
> man pages for perl modules and other non Sun items get parsed properly
> and inserted into the windex. I searched DejaNews and found that some
> people had written some various perl scripts to replace sun's makewhatis
> script but the only script I could get my hands on didn't work right.
> (I won't waste any more bandwidth on this and assume that if you don't
> have/know of this problem, you don't have anything already written).

I've found and tried that script, and while it worked fine for Perl's
manpages, it broke several others.  I have instead made this quick fix
to the makewhatis delivered with solaris:

*** /usr/lib/makewhatis.solaris Wed Apr 23 09:35:03 1997
--- /usr/lib/makewhatis Wed Apr 23 09:37:40 1997
***************
*** 38,43 ****
--- 38,44 ----
        -e 's/\\-/-/' \
        -e 's/\\\*-/-/' \
        -e 's/ VAX-11//' \
+       -e 's/\.IX Header "NAME" //' \
        -e 's/\\f[PRIB0123]//g' \
        -e 's/\\s[-+0-9]*//g' \
        -e '/ - /!d' \



> Trey Valenta	trey@zipcon.net	 Seattle, WA

-- 
//Tom Grydeland <Tom.Grydeland@phys.uit.no>


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

Date: Fri, 15 Aug 1997 18:05:59 +0800
From: Magdalene Chua <mag@contact.com.sg>
Subject: Making a hash remember the order of the inserted elements
Message-Id: <33F42A07.716AB170@contact.com.sg>

This is a cryptographically signed message in MIME format.

--------------msFDADC608FC19A4D6BDA5F779
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

Is there any way I can make my hash remember the order in which I put
elements into it? I read somewhere about Tie::IxHash that does exactly
this, but I don't know how to use it. If anyone has any simple source
code to demonstrate this function, I'll appreciate it very much.

Thanks in advance.

Magdalene Chua

--------------msFDADC608FC19A4D6BDA5F779
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

MIIQjgYJKoZIhvcNAQcCoIIQfzCCEHsCAQExCzAJBgUrDgMCGgUAMAsGCSqGSIb3DQEHAaCC
DvwwggpGMIIJr6ADAgECAhBLhxR9gEnmiZPJhyTKNPdnMA0GCSqGSIb3DQEBBAUAMGIxETAP
BgNVBAcTCEludGVybmV0MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE0MDIGA1UECxMrVmVy
aVNpZ24gQ2xhc3MgMSBDQSAtIEluZGl2aWR1YWwgU3Vic2NyaWJlcjAeFw05NzA2MjUwMDAw
MDBaFw05NzEyMjUyMzU5NTlaMIIBDjERMA8GA1UEBxMISW50ZXJuZXQxFzAVBgNVBAoTDlZl
cmlTaWduLCBJbmMuMTQwMgYDVQQLEytWZXJpU2lnbiBDbGFzcyAxIENBIC0gSW5kaXZpZHVh
bCBTdWJzY3JpYmVyMUYwRAYDVQQLEz13d3cudmVyaXNpZ24uY29tL3JlcG9zaXRvcnkvQ1BT
IEluY29ycC4gYnkgUmVmLixMSUFCLkxURChjKTk2MSYwJAYDVQQLEx1EaWdpdGFsIElEIENs
YXNzIDEgLSBOZXRzY2FwZTEXMBUGA1UEAxMOTWFnZGFsZW5lIENodWExITAfBgkqhkiG9w0B
CQEWEm1hZ0Bjb250YWN0LmNvbS5zZzBcMA0GCSqGSIb3DQEBAQUAA0sAMEgCQQDJMjrKjfG5
4UA11ebkl2g0V6o0/yQOSrCGkRX3PsS6DXc0B6TdLyposir/XSUeA7rt2Zzh9OeGeq+/NT1t
YSDFAgMBAAGjggeRMIIHjTAJBgNVHRMEAjAAMIICHwYDVR0DBIICFjCCAhIwggIOMIICCgYL
YIZIAYb4RQEHAQEwggH5FoIBp1RoaXMgY2VydGlmaWNhdGUgaW5jb3Jwb3JhdGVzIGJ5IHJl
ZmVyZW5jZSwgYW5kIGl0cyB1c2UgaXMgc3RyaWN0bHkgc3ViamVjdCB0bywgdGhlIFZlcmlT
aWduIENlcnRpZmljYXRpb24gUHJhY3RpY2UgU3RhdGVtZW50IChDUFMpLCBhdmFpbGFibGUg
YXQ6IGh0dHBzOi8vd3d3LnZlcmlzaWduLmNvbS9DUFM7IGJ5IEUtbWFpbCBhdCBDUFMtcmVx
dWVzdHNAdmVyaXNpZ24uY29tOyBvciBieSBtYWlsIGF0IFZlcmlTaWduLCBJbmMuLCAyNTkz
IENvYXN0IEF2ZS4sIE1vdW50YWluIFZpZXcsIENBIDk0MDQzIFVTQSBUZWwuICsxICg0MTUp
IDk2MS04ODMwIENvcHlyaWdodCAoYykgMTk5NiBWZXJpU2lnbiwgSW5jLiAgQWxsIFJpZ2h0
cyBSZXNlcnZlZC4gQ0VSVEFJTiBXQVJSQU5USUVTIERJU0NMQUlNRUQgYW5kIExJQUJJTElU
WSBMSU1JVEVELqAOBgxghkgBhvhFAQcBAQGhDgYMYIZIAYb4RQEHAQECMCwwKhYoaHR0cHM6
Ly93d3cudmVyaXNpZ24uY29tL3JlcG9zaXRvcnkvQ1BTIDARBglghkgBhvhCAQEEBAMCB4Aw
NgYJYIZIAYb4QgEIBCkWJ2h0dHBzOi8vd3d3LnZlcmlzaWduLmNvbS9yZXBvc2l0b3J5L0NQ
UzCCBIcGCWCGSAGG+EIBDQSCBHgWggR0Q0FVVElPTjogVGhlIENvbW1vbiBOYW1lIGluIHRo
aXMgQ2xhc3MgMSBEaWdpdGFsIApJRCBpcyBub3QgYXV0aGVudGljYXRlZCBieSBWZXJpU2ln
bi4gSXQgbWF5IGJlIHRoZQpob2xkZXIncyByZWFsIG5hbWUgb3IgYW4gYWxpYXMuIFZlcmlT
aWduIGRvZXMgYXV0aC0KZW50aWNhdGUgdGhlIGUtbWFpbCBhZGRyZXNzIG9mIHRoZSBob2xk
ZXIuCgpUaGlzIGNlcnRpZmljYXRlIGluY29ycG9yYXRlcyBieSByZWZlcmVuY2UsIGFuZCAK
aXRzIHVzZSBpcyBzdHJpY3RseSBzdWJqZWN0IHRvLCB0aGUgVmVyaVNpZ24gCkNlcnRpZmlj
YXRpb24gUHJhY3RpY2UgU3RhdGVtZW50IChDUFMpLCBhdmFpbGFibGUKaW4gdGhlIFZlcmlT
aWduIHJlcG9zaXRvcnkgYXQ6IApodHRwczovL3d3dy52ZXJpc2lnbi5jb207IGJ5IEUtbWFp
bCBhdApDUFMtcmVxdWVzdHNAdmVyaXNpZ24uY29tOyBvciBieSBtYWlsIGF0IFZlcmlTaWdu
LApJbmMuLCAyNTkzIENvYXN0IEF2ZS4sIE1vdW50YWluIFZpZXcsIENBIDk0MDQzIFVTQQoK
Q29weXJpZ2h0IChjKTE5OTYgVmVyaVNpZ24sIEluYy4gIEFsbCBSaWdodHMgClJlc2VydmVk
LiBDRVJUQUlOIFdBUlJBTlRJRVMgRElTQ0xBSU1FRCBBTkQgCkxJQUJJTElUWSBMSU1JVEVE
LgoKV0FSTklORzogVEhFIFVTRSBPRiBUSElTIENFUlRJRklDQVRFIElTIFNUUklDVExZClNV
QkpFQ1QgVE8gVEhFIFZFUklTSUdOIENFUlRJRklDQVRJT04gUFJBQ1RJQ0UKU1RBVEVNRU5U
LiAgVEhFIElTU1VJTkcgQVVUSE9SSVRZIERJU0NMQUlNUyBDRVJUQUlOCklNUExJRUQgQU5E
IEVYUFJFU1MgV0FSUkFOVElFUywgSU5DTFVESU5HIFdBUlJBTlRJRVMKT0YgTUVSQ0hBTlRB
QklMSVRZIE9SIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgpQVVJQT1NFLCBBTkQgV0lMTCBO
T1QgQkUgTElBQkxFIEZPUiBDT05TRVFVRU5USUFMLApQVU5JVElWRSwgQU5EIENFUlRBSU4g
T1RIRVIgREFNQUdFUy4gU0VFIFRIRSBDUFMKRk9SIERFVEFJTFMuCgpDb250ZW50cyBvZiB0
aGUgVmVyaVNpZ24gcmVnaXN0ZXJlZApub252ZXJpZmllZFN1YmplY3RBdHRyaWJ1dGVzIGV4
dGVuc2lvbiB2YWx1ZSBzaGFsbCAKbm90IGJlIGNvbnNpZGVyZWQgYXMgYWNjdXJhdGUgaW5m
b3JtYXRpb24gdmFsaWRhdGVkIApieSB0aGUgSUEuMIGGBgpghkgBhvhFAQYDBHgWdmQ0NjUy
YmQ2M2YyMDQ3MDI5Mjk4NzYzYzlkMmYyNzUwNjljNzM1OWJlZDFiMDU5ZGE3NWJjNGJjOTcw
MTc0N2RhNWQ1ZTYxNDFiZWFkYjJiZDJlODg3MTBhZDZhZjlkNzExNDg5ZWExYmY0M2Y0ZTQ5
MDY1NGEwDQYJKoZIhvcNAQEEBQADgYEAWahQMmTZCTpGdYPZa6ec0pJxxA2lEQVN1gUShjg9
ul2/mf30ysh5n8YB7LQtOxGmNmnYFLpq3z/OqAPEUCo51CnlXEiewXLvkitT1EbzKKGCo+3B
sVh0gj891qzee62qFsLyWpzl6hE88CB952HI5ecfzCT+9clHCjuz87op+WEwggJ5MIIB4qAD
AgECAhBSHzUd8nB+ACu+ylmHBNU5MA0GCSqGSIb3DQEBAgUAMF8xCzAJBgNVBAYTAlVTMRcw
FQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE3MDUGA1UECxMuQ2xhc3MgMSBQdWJsaWMgUHJpbWFy
eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw05NjA2MjcwMDAwMDBaFw05OTA2MjcyMzU5
NTlaMGIxETAPBgNVBAcTCEludGVybmV0MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE0MDIG
A1UECxMrVmVyaVNpZ24gQ2xhc3MgMSBDQSAtIEluZGl2aWR1YWwgU3Vic2NyaWJlcjCBnzAN
BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAthSmz03QBQ3YyiPQb6q0KZJjjiz4b5bXLp12SxGx
No1XycP9HMa6/h4IujPKleq+41vNBqi3eR1EKu1z8rFSg2gQcGSR1z5r+fddnRRDm26XRZiB
R9Ety927ctdMP3Gq4kDyVDm8Fu7PfOy62z9sKrMWsYYSna6TNNW41dD3PqkCAwEAAaMzMDEw
DwYDVR0TBAgwBgEB/wIBATALBgNVHQ8EBAMCAQYwEQYJYIZIAYb4QgEBBAQDAgEGMA0GCSqG
SIb3DQEBAgUAA4GBAMH69wLnV8oRdcacDPord0+HRRc749LB2g9YOY6ulZkDoaihOP55mpMX
C5eGOcfKaDRmu8eIRfbIDAXuvpcl7+DUbuR/nXZczn26FKKuC5/7Z1tIpWclrxlkiPZy2Ckn
qjcSarEoryeDGGVsje1Ank3EeKiG7OksUL+m+Q3bsKZKMIICMTCCAZoCBQKkAAABMA0GCSqG
SIb3DQEBAgUAMF8xCzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE3MDUG
A1UECxMuQ2xhc3MgMSBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAe
Fw05NjAxMjkwMDAwMDBaFw05OTEyMzEyMzU5NTlaMF8xCzAJBgNVBAYTAlVTMRcwFQYDVQQK
Ew5WZXJpU2lnbiwgSW5jLjE3MDUGA1UECxMuQ2xhc3MgMSBQdWJsaWMgUHJpbWFyeSBDZXJ0
aWZpY2F0aW9uIEF1dGhvcml0eTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA5Rm/baNW
YS2ZSHH2Z965jeu3noaACpEO+jglr0aIguVzqKCbJF0NH8xlbgyw0FaEGIeaBpsQoXPftFg5
a27B9hXVqKg/qhIGjTGsf7A01480Z4gJzRQR4k5FVmkfeAKA2txHkSm7NsljXMXg1y2He6G3
MrB7MLoqLzGq7qNn2tsCAwEAATANBgkqhkiG9w0BAQIFAAOBgQBSc7qaVdzcP4J9sJCYYiqC
THYAbiU91cIJcFcBDA93Hxih+xxgDqB1O0khQf6nXC1MQknT/yjYjOqd/skH4neCUyPeVfPO
RJP6+ky9yjbzW2aynsjyDF5e1KG0IQkzyjtZ/JLCOPyt2ZYk4C36oyn1M2h4TrS8n2k14qiY
lHM7xDGCAVowggFWAgEBMHYwYjERMA8GA1UEBxMISW50ZXJuZXQxFzAVBgNVBAoTDlZlcmlT
aWduLCBJbmMuMTQwMgYDVQQLEytWZXJpU2lnbiBDbGFzcyAxIENBIC0gSW5kaXZpZHVhbCBT
dWJzY3JpYmVyAhBLhxR9gEnmiZPJhyTKNPdnMAkGBSsOAwIaBQCgfTAYBgkqhkiG9w0BCQMx
CwYJKoZIhvcNAQcBMCMGCSqGSIb3DQEJBDEWBBSYfY9D7kiIxfYi/qT+MkMwqv/CXTAcBgkq
hkiG9w0BCQUxDxcNOTcwODE1MTAwNjAwWjAeBgkqhkiG9w0BCQ8xETAPMA0GCCqGSIb3DQMC
AgEoMA0GCSqGSIb3DQEBAQUABEAVKq9l4vSIc/IubDo1Lmbkkv8wsHKo7iV0ZAZD2QVidLON
ImyTLEddadQgmBa3565VVj3eumGNrqDfRJ0qFYFa
--------------msFDADC608FC19A4D6BDA5F779--



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

Date: 15 Aug 1997 11:38:12 +0000
From: Tom Grydeland <tom@mitra.phys.uit.no>
Subject: Re: Skipping portions of text; how? (code included)
Message-Id: <nqo7mdnad7f.fsf@mitra.phys.uit.no>

Zenin <zenin@best.com> writes:

> Jari Aalto <ssjaaa@uta.fi> wrote:
> >         hi, [Please CC too if you can]
> >         I have trouble undertanding why the 
> >                 if ( // .. // )
> >         does not work as I would expect.
> 
> 	Personaly, I wouldn't expect it to do much actually.

Why not?  It's perfectly legal.  It just behaved in an unexpected way.
(those are two m//es with a  ..  between them, nothing else)


> >         I'm trying to exlude TOC from 
> >         following sample text. See also the included function.
> >         The only thing that gets filetered is heading "table of
> >         contents". How do I filted heading and text inside it up
> >         till next heading?

> >         if ( /^Table\s+of\s+contents\s*$/i .. /^[A-Z0-9]/ )

The problem is that Perl evaluates the expression on the right on the
same line as the expression on the left, so that the .. immediately
becomes false again.  Quoting perlop:

  It can
  test the right operand and become false on the same evaluation it became
  true (as in awk), but it still returns true once.  If you don't want it to
  test the right operand till the next evaluation (as in sed), use three dots
  ("...") instead of two.)

So what you want is probably

if ( /^Table\s+of\s+contents\s*$/i ... /^[A-Z0-9]/ )

> -Zenin

-- 
//Tom Grydeland <Tom.Grydeland@phys.uit.no>


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

Date: 15 Aug 1997 11:15:20 +0000
From: Tom Grydeland <tom@mitra.phys.uit.no>
Subject: Re: We Need Help...
Message-Id: <nqo90y3ae9j.fsf@mitra.phys.uit.no>

jhurff@resourcecenter.com (James Hurff) writes:

> to develop a Perl utility to make a socket connection with an NNTP
> server and upload or download news articles to a specified NNTP sever.

It should be fairly simple using Net::NNTP

(I sincerely hope you're not going to use this for spamming.
 You're not going to spam us, are you?)

> James Hurff

-- 
//Tom Grydeland <Tom.Grydeland@phys.uit.no>


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

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

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