[12447] in Perl-Users-Digest

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

Perl-Users Digest, Issue: 6047 Volume: 8

daemon@ATHENA.MIT.EDU (Perl-Users Digest)
Fri Jun 18 15:07:22 1999

Date: Fri, 18 Jun 99 12:00:26 -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, 18 Jun 1999     Volume: 8 Number: 6047

Today's topics:
    Re: A buggy intersection-method <d-edwards@uchicago.edu>
        ANN: State machine tool (Tramm Hudson)
        array problem (Brian Pontz)
    Re: changing hash keys thru subroutine <d-edwards@uchicago.edu>
        deleting part of a string (JQ)
    Re: deleting part of a string <craig@mathworks.com>
    Re: deleting part of a string <jeffp@crusoe.net>
    Re: Having trouble making this work... <portboy@home.com>
    Re: Hex to Decimal?? (Tad McClellan)
    Re: Hex to Decimal?? <aqumsieh@matrox.com>
    Re: Hex to Decimal?? (Andrew Johnson)
    Re: How I do setup cookie? <rootbeer@redcat.com>
    Re: How I do setup cookie? (Lee)
    Re: JPEG height/width <rootbeer@redcat.com>
    Re: JPEG height/width <crt@highvision.com>
    Re: Makefile.PL when you're not the admin <burton@lucent.com>
    Re: math::Matrix <rootbeer@redcat.com>
    Re: newbie (Tad McClellan)
    Re: OO-Trap! I am confused (Mark-Jason Dominus)
    Re: Opening a remote file? <rootbeer@redcat.com>
    Re: Passing Hash - Am I Doing This Right? <jeffp@crusoe.net>
    Re: Passing Hash - Am I Doing This Right? <upsetter@ziplink.net>
    Re: pattern match by column (Andrew Johnson)
        Pattern Matching Question <gte482i@prism.gatech.edu>
    Re: Pattern Matching Question <craig@mathworks.com>
    Re: Pattern Matching Question <burton@lucent.com>
    Re: Perl scripts slows down servers? <cassell@mail.cor.epa.gov>
    Re: problems receiving datastream via a socket <trader@underwear.heuristics.com>
    Re: Question <ludlow@us.ibm.com>
        Running Perl Simultaneously with another language.. (Chih-Hsin Wen)
    Re: script to lookup phone number off website? <pnkflyd51@hotmail.com>
    Re: script to lookup phone number off website? <rootbeer@redcat.com>
    Re: sprintf and money <cassell@mail.cor.epa.gov>
        Using ^M within backquotes possible? <burton@lucent.com>
    Re: Using cgi or servlets, now? (brian d foy)
        VERY SIMPLE QUESTION. xacto@my-deja.com
        Win32 OLE - Access is Denied <podski@hotmail.com>
        Special: Digest Administrivia (Last modified: 12 Dec 98 (Perl-Users-Digest Admin)

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

Date: Fri, 18 Jun 1999 18:03:58 GMT
From: Darrin Edwards <d-edwards@uchicago.edu>
Subject: Re: A buggy intersection-method
Message-Id: <tgpv2tgzch.fsf@noise.bsd.uchicago.edu>

Thomas Weholt <thomas@bibsyst.no> writes:
    [Uri Guttman <uri@sysarch.com> wrote:]
> 
> >
> > maybe the getEntries function is buggy? we can't tell since you didn't
> > post the code for it.

[snip]
> But I don`t think the getEntries is buggy ( allthough, I`m a newbie, and you,
> judging by the way you commented my coding-style, must be an experienced
> perl-hacker).
> 

Maybe by "buggy" was just meant "does not react well to being fed
an 'undef'."  :)  That seemed to be a main concern in your repeated
if-tests:

 TW>         if (defined($ARGV[0])) {@array1 = getEntries(lc($ARGV[0])); }
 TW> }
 TW>         if (defined($ARGV[14])) {@array15 = getEntries(lc($ARGV[14]));
 TW> }
i.e., that passing getEntries an undefined value might not be a good idea
(note that lc(undef) meekly returns undef without otherwise complaining).

But even if that's so, you can modify Uri's suggestion very easily:
> >	@lol = map [getEntries( lc $_ ) ] @ARGV ;

	@lol = map {defined($_) ? [getEntries(lc $_)] : undef} @ARGV;

Or you could take a look at your function itself:

> Here`s the getEntries-method :
> 
> sub getEntries(){
	       #^^ See comment below...
>         my @array = split(/$delim/, lc $index_hash{$_[0]});
>         return @array;
> }

Notice that if $_[0] (or @_ for that matter) is undefined, then
you're indexing the value in %index_hash corresponding to the
undef key (that's the undefined value, not the string "undef").
This is probably not what a user of the function is likely to
want.  The fix is the same though:

	sub getEntries { #Are you sure you wanted parens?  That would
			 #mean the function takes _no_ params!
		unless (defined $_[0]) {
			return; #undef in scalar context,
				#() in list context!  Cool, eh? :)
		}
		split(/$delim/, lc $index_hash{$_[0]});
	}

It may seem like overkill to make _both_ of these corrections,
especially if you're the one both writing and using getEntries (i.e.
it's your choice).  But if you are thinking at all about code reuse,
you kind of have to look at two possibilities: 1) getEntries being
reused by someone not as careful what input they feed it, and 2)
getEntries being _replaced_ by a less-robust function in whatever
code is currently calling it.  Whichever code is most likely to
be reused should thus be the more bulletproof, so to speak.

Hope this helped,
Darrin


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

Date: 18 Jun 1999 12:01:11 -0600
From: hudson@swcp.com (Tramm Hudson)
Subject: ANN: State machine tool
Message-Id: <7ke1h7$cmh@llama.swcp.com>

[posted and cc'd to Greg, who started this whole discussion]

After the discussion of statemachines, closures, threads, and
other topics, I've cleaned up my State Machine tool that handles
the grungy parts of building and using state machines.  This is
beta code and I have not written a POD for it yet, but I hope
that the example makes it clear what needs to be done to use
the module.

The approach that this module uses is to define a state machine
object and then instantiate a running machine with the start method.
You may have multiple running machines of the same type -- they have
independant state and values.

If there is interest in this module for other users, I will write
documentation and submit it to CPAN.  A quick search for "state and machine"
in the modules did not turn up any references with this functionality.
Nor did a 'grep -i state /usr/local/lib/perl5/5.00503/pod/* | grep -i machine'
have any hits.

And for the pendants, the code is strict clean, -w free and doesn't
use any symbolic references.  Real references are used everywhere, as
are closures and the deep binding.


Here is a simple example of how to use this module:

#!/usr/bin/perl -w
use strict;
use Machine;

my $state_machine = new Machine 'foo machine',
	start => sub {
		my ($sm,@args) = @_;
		print "Start:  Current state is ", $sm->Current, "\n";

		Next $sm 'foo';
	},
 
	foo => sub {
		my ($sm,@args) = @_;
		print "Foo state: came from ", $sm->Prev, "\n";

		Next $sm 'done';
	},
 
	done => sub {
		my ($sm,@args) = @_;
		print "Done: All States: ", (join ', ', $sm->States), "\n";

		Done $sm 'done foo';
	},
;

eval {
	my $sm = $state_machine->start;
	my $result;

	$result = $sm->('args to running machine') until $result;

	print "result = $result\n";
};
die "State machine died: $@\n" if $@;
__END__


And now for the actual module:

#!/usr/bin/perl -w
#
# State Machine building and running module
# Written by Tramm Hudson (hudson@swcp.com)
# 15 June 1999
#
# More docs to come?
#

package Machine;
use strict;
use UNIVERSAL qw(isa can);

sub new 
{
	my $class	= ref $_[0] ? ref shift : shift;
	my $sm		= bless {
		name	=> shift,
	}, $class;

	while( @_ ) {
		my $state	= shift;
		my $func	= shift;
		
		die "$sm->{name}: $state argument ($func) is not a closure\n"
			unless isa($func,'CODE');

		$sm->{initial}	||= $state;
		$sm->{states}->{$state}	= $func;
	}

	$sm
}

sub start
{
	my $sm	= shift;

	my $running = bless {
		states	=> [ $sm->{initial} ],
		machine	=> $sm,
		name	=> $sm->{name},
	}, 'Machine::Running';
	
	while( @_ ) {
		my $arg = shift;
		if( $arg eq '-debug' ) {
			$running->{debug} = shift;
			next;
		}

		if( $arg eq '-name' ) {
			$running->{name} = shift;
			next;
		}

		die "$sm->{name}: Unknown option $arg\n";
	}


	sub {
		die "$running->{name}: State machine finished\n"
			unless $running->{states}->[0];
		$sm->{states}->{$running->{states}->[0]}->( $running, @_ );
	}
}

package Machine::Running;
sub Next
{
	my ($sm,$next) = @_;
	die "$sm->{name}: No such next state: $next\n"
		unless exists $sm->{machine}->{states}->{$next};

	warn "$sm->{debug}$sm->{name}: Moving to state $next\n"
		if $sm->{debug};

	unshift @{$sm->{states}}, $next;

	return;
}

sub Done
{
	my ($sm,@value) = @_;
	unshift @{$sm->{states}}, undef;

	warn "$sm->{debug}$sm->{name}: Done\n" if $sm->{debug};
	wantarray ? @value : $value[0];
}

sub Name	{ $_[0]->{name} };
sub Current	{ $_[0]->{states}->[0] };
sub Prev	{ $_[0]->{states}->[1] };
sub States	{ @{$_[0]->{states}} };
__END__


-- 
  o   hudson@swcp.com                 tbhudso@cs.sandia.gov   O___|   
 /|\  http://www.swcp.com/~hudson/          H 505.266.59.96   /\  \_  
 <<   KC5RNF @ N5YYF.NM.AMPR.ORG            W 505.284.24.32   \ \/\_\  
  0                                                            U \_  | 


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

Date: Fri, 18 Jun 1999 18:53:54 GMT
From: pontz@channel1.com (Brian Pontz)
Subject: array problem
Message-Id: <376a938d.87632910@news2.channel1.com>

Hello,
I'm a rookie so ....

@servers=(1..4,6..9);
use LWP::UserAgent;
  foreach (@servers) {
  $ua = new LWP::UserAgent;
  $ua->agent("$0/0.1 " . $ua->agent);
  $req=newHTTP::Request'GET'=>"http://www\@servers$_domain.com/";
  $req->header('Accept' => 'text/html');
  
What am I doing wrong? Im trying to give the current value of @servers
each time through the foreach loop so that it does www1.domain.com
then www2.domain.com and so on. But I keep getting this for a error
message.
Error: 500 Can't resolv address for servers1.domain.com and so on. Why
does it try to lookup servers1.domain.com ? not www1.domain.com?

Brian Pontz



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

Date: Fri, 18 Jun 1999 18:24:32 GMT
From: Darrin Edwards <d-edwards@uchicago.edu>
Subject: Re: changing hash keys thru subroutine
Message-Id: <tgogidgye7.fsf@noise.bsd.uchicago.edu>

Rick Delaney <rick.delaney@home.com> writes:

> 
> [posted & mailed]
> 
> irfna@my-deja.com wrote:
> > 
> >   foreach $key(keys %myHash){
> >     $key="bye bye";
> >   print "$key\n";
> >   }
> 
> $key is not aliased to the actual key in %myHash.  The function keys
> returns a separate list.  
> 
> If you want to change the key you will need to delete the original and
> add the new one.  But it seems pretty strange to use foreach to replace
> all the entries of %myHash with one entry with the key "bye bye".  Maybe
> you're trying to do something else?

Plus, I thought it was generally considered Naughty to modify
hash elements while iterating over the hash?  Or is that just with
`each' and kind?

Anyway, the idiom that comes to my mind is [UNTESTED]:

	#%Old_hash, @Old_keys, @New_keys defined somewhere in program

	@New_hash{@New_keys} = @Old_hash{@Old_keys};

	undef %Old_hash; #if desired

This admittedly takes about twice the memory of manipulating the original
hash in-place, but it seems safer to me than adding & deleting hash
elements while iterating.

Darrin


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

Date: Fri, 18 Jun 1999 17:07:31 GMT
From: pigs_can_fly@mindless.com (JQ)
Subject: deleting part of a string
Message-Id: <376a79fc.62397051@news.cyberway.com.sg>

Hi

I would appreciate if someone could help me with deleting part of a
string. Variants of $string can have any number of /s.

$string = 'computers/hardware/monitors/sony';

I need to delete whatever follows the LAST occurence of /, including
the last /

so the result would be

$string = 'computers/hardware/monitors';


Thanks


JQ


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

Date: Fri, 18 Jun 1999 13:18:27 -0400
From: Craig Ciquera <craig@mathworks.com>
Subject: Re: deleting part of a string
Message-Id: <376A7F63.5C42A4D9@mathworks.com>

JQ wrote:

> $string = 'computers/hardware/monitors/sony';
>
> I need to delete whatever follows the LAST occurence of /, including
> the last /
>
> so the result would be
>
> $string = 'computers/hardware/monitors';
>

Hope this helps:

#!/usr/local/bin/perl -w

use strict;
use File::Basename;

my $string = 'computers/hardware/monitors/sony';

my $new_string = dirname( $string );

print $new_string . "\n";

__END__



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

Date: Fri, 18 Jun 1999 13:26:13 -0400
From: evil Japh <jeffp@crusoe.net>
Subject: Re: deleting part of a string
Message-Id: <Pine.GSO.3.96.990618132108.3119B-100000@crusoe.crusoe.net>

[Email also sent to JQ]

On Fri, 18 Jun 1999, JQ wrote:
> $string = 'computers/hardware/monitors/sony';
> 
> I need to delete whatever follows the LAST occurence of /, including
> the last /
> 
> $string = 'computers/hardware/monitors';

To read up on regular expressions, read the perlre documentation.
To read up on substr() and rindex(), read the perlfunc documentation.

I would suggest either:

a regular expression like the following:

$string =~ s(
	/	# a /
	[^/]	# then any non-/ character
	*	# any number of times
	$	# until the end of the string
)()x;		# x allows for comments.
		# $string =~ s!/[^/]*$!!;

OR:

a substr like this:

substr($string,rindex($string,"/")) = "";

-- 
Jeff Pinyan (jeffp@crusoe.net)
www.crusoe.net/~jeffp

Crusoe Communications, Inc.
732-728-9800
www.crusoe.net



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

Date: Fri, 18 Jun 1999 18:42:25 GMT
From: Mitch <portboy@home.com>
Subject: Re: Having trouble making this work...
Message-Id: <376A2330.AD88BE94@home.com>

Okay, I've changed it to:

sub read_config
{
        my $cfg = shift;
        open(CFG, $cfg) or die "damn't $!";
        while(<CFG>) {
        chomp;
        s/#.*//;
        s/^\s+//;
        s/\s+$//;
        next unless length;
        my ($var, $value) = split ' ', $_, 2;
        $config{$var} = $value;
        #$$var = $value;
        if (/^==(.*)/) {
                my $dir = $1;
                ($name, $path) = fileparse($dir);
                print "name is $name, path is $path\n";
                unless (-d $dir) {
                        mkdir $dir, 0777 or die "could not create '$dir' $!";
                }
                open FILE, ">$path/$name" or die "Can't open $path $!";
        } elsif (/^\--END$/) {
                close FILE;
        } else {
                print FILE "$_\n";
        }
        }
        close(CFG);
        return;
}

Which is cool, however when I run it with a config file of:

coke enable
pepsi disable
mountdew is okay
==/foo/bar1/foofile
--BEGIN
a bunch of ascii text will go here
and it can be multiline
--END
==/foo/bar2/foofile
--BEGIN
again, a bunch of text will go here
--END

It simply returns me back my shell prompt without reporting an error, creating
the directory/file, or continuing through the rest of my script.  However, if
I run it with a config of:

coke enable
pepsi disable
mountdew is okay

Then the rest of the script works just fine.  ???????  What am I doing wrong?

Lastly, how can I setup the "slurp" of config so that it can handle multiple
lines starting with the same variable, but ending with a different value.
i.e. if my config was:

coke enable
pepsi disable
mountdew is okay
coke sucks

I wouldn't have in $config{coke} returning sucks.  I need someway of having
both enable and sucks for coke...?????  How can I do this?

Thanks for the help,

 .mitch


Tad McClellan wrote:

> Mitch (portboy@home.com) wrote:
>
> : it should check to see if /foo/bar1 is a directory, and
> : if it isn't - create it.
>
> : However, I can't seem to get it to create the subdirectory /bar?.
>
> : So, can someone tell me what I need to do to make this happen or give me
> : some pointers?  Also, Let's say that my config will now look something
> : like this:
>
> : sub slurp_config
> [snip]
> :         my ($var, $value) = split ' ', $_, 2;
> :         $$var = $value;
>           ^^^^^
>           ^^^^^
>
>    Symbolic references are evil. One day they will cost you hours
>    and hours of troubleshooting.
>
>    Better to not use them, and not be susceptible to such pain.
>
>       http://www.plover.com/~mjd/perl/varvarname.html
>
>    Use a hash instead:
>
>       $config{$var} = $value;
>
> :         if (/^==(.*)/) {
> :                 my $dir = $1;
>
>    But the contents of $dir is not a directory.
>
>    That's a confusing choice of variable name.
>
>    $dir is the full path to a file.
>
>    You need to trim off the filename part if you want to test
>    for the existence of the directory.
>
>    Since you didn't trim it, you are testing for the existence
>    of the _file_.
>
>    The File::Basename module might help with the trimming.
>
> :                 #if(! -d $dir) { system("mkdir $dir"); }
>
>    1) you should check the return value from system() calls:
>
>       if(! -d $dir) { system("mkdir $dir") && die "system() failed $?";
>
>    2) Perl has a builtin function for making directories you
>       do not need to use the shell's via system().
>
>       It is named, oddly enough, mkdir()    :-)
>
>       unless (-d $dir) {
>          mkdir $dir or die "could not create '$dir' $!";
>       }
>
> --
>     Tad McClellan                          SGML Consulting
>     tadmc@metronet.com                     Perl programming
>     Fort Worth, Texas



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

Date: Fri, 18 Jun 1999 08:30:38 -0400
From: tadmc@metronet.com (Tad McClellan)
Subject: Re: Hex to Decimal??
Message-Id: <e5edk7.03m.ln@magna.metronet.com>

Daniel Grisinger (dgris@moiraine.dimensional.com) wrote:
: tadmc@metronet.com (Tad McClellan) writes:

: > seong joon bae (seongbae@students.uiuc.edu) wrote:
: > 
: > : How would you write a little script that converts hex to dec...?
: > 
: > 
: >    I would use an editor, such as vi or emacs, for writing scripts.
: > 

: You're weak! Weak, I say!  Real men don't use brain-sucking,
: hand-holding, sissy programs like vi or emacs to program.  
: Real men use cat.

:   % cat > myscript.pl
:   #!/usr/local/bin/perl
:   #
:   use strict;
:   print "Hi\n";
:   ^D
:   %

: :-)
  ^^^
  ^^^  leaving warnings disabled is not funny!


--
    Tad McClellan                          SGML Consulting
    tadmc@metronet.com                     Perl programming
    Fort Worth, Texas


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

Date: Fri, 18 Jun 1999 11:11:26 -0400
From: Ala Qumsieh <aqumsieh@matrox.com>
Subject: Re: Hex to Decimal??
Message-Id: <x3yyahhzgpt.fsf@tigre.matrox.com>


seong joon bae <seongbae@students.uiuc.edu> writes:

> How would you write a little script that converts hex to dec...?

	print hex '0xAF';

a very little script indeed.



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

Date: Fri, 18 Jun 1999 17:53:41 GMT
From: andrew-johnson@home.com (Andrew Johnson)
Subject: Re: Hex to Decimal??
Message-Id: <FIva3.1925$36.52216@news2.rdc1.on.home.com>

In article <m3hfo5o561.fsf@moiraine.dimensional.com>,
 Daniel Grisinger <dgris@moiraine.dimensional.com> wrote:

! You're weak! Weak, I say!  Real men don't use brain-sucking,
! hand-holding, sissy programs like vi or emacs to program.  
! Real men use cat.
! 
!   % cat > myscript.pl
[snip]

why pollute the filesystem ... show some confidence in
your 'one-off' scripting:

[danger:jandrew:~]$ perl -lw
use strict;
my $greeting = 'hello world';
print $greeting;
^d
hello world
[danger:jandrew:~]$

:-)

andrew
-- 
      Reality is that which, when you stop believing in 
      it, doesn't go away.
          -- Philip K. Dick
      


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

Date: Fri, 18 Jun 1999 10:28:09 -0700
From: Tom Phoenix <rootbeer@redcat.com>
Subject: Re: How I do setup cookie?
Message-Id: <Pine.GSO.4.02A.9906181027010.5420-100000@user2.teleport.com>

On Fri, 18 Jun 1999 deafclub@my-deja.com wrote:

> How I do setup cookie?

> require "cgi-lib.pl";

You probably want 'use CGI' instead. Check its docs. Cheers!

-- 
Tom Phoenix       Perl Training and Hacking       Esperanto
Randal Schwartz Case:     http://www.rahul.net/jeffrey/ovs/



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

Date: Fri, 18 Jun 1999 12:54:24 -0500
From: rlb@intrinsix.ca (Lee)
Subject: Re: How I do setup cookie?
Message-Id: <B38FF20096688AC728@0.0.0.0>

In article <7kdnh8$jnt$1@nnrp1.deja.com>,
deafclub@my-deja.com wrote:

>How I do setup cookie?
>
>[...]
>
>require "cgi-lib.pl";

Let me guess. Matt's script archive? A really, really bad place to start. I
know. That's where I started. :)

Four years later I'm still fixing bugs that I inherited from Matt, and he
seems to not have fixed any in that time.

>$name = "$in{'getname'}";

my $name;
my $cookie = $ENV{'HTTP_COOKIE'};
if ($cookie =~ /getname=([^&])/) {
    $name = $1;
}

I think that's the main thing you're missing to have a workable (but
fragile and ugly) script.

Lee




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

Date: Fri, 18 Jun 1999 10:38:15 -0700
From: Tom Phoenix <rootbeer@redcat.com>
Subject: Re: JPEG height/width
Message-Id: <Pine.GSO.4.02A.9906181035590.5420-100000@user2.teleport.com>

On Fri, 18 Jun 1999, Steve Laybourn wrote:

> How can I get the height and
> width of a JPEG image using Perl?

Image::Size.

> but the current server admins want a
> potload of money just to install those two modules.

What good is an admin who won't install software? Upgrade.

But maybe you want to see what the FAQ says about maintaining your own
module collection. Cheers!

-- 
Tom Phoenix       Perl Training and Hacking       Esperanto
Randal Schwartz Case:     http://www.rahul.net/jeffrey/ovs/



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

Date: Fri, 18 Jun 1999 13:35:52 -0400
From: "Casey Tweten" <crt@highvision.com>
Subject: Re: JPEG height/width
Message-Id: <7ke0j8$3j66@news.icubed.com>

I wrote a small module in Perl, and for testing purposes the Admin didn't
want to install it. So I did this:

use lib '/absolute/path/to/module';
use ModuleName;

And that worked for me, I also have permission to compile stuff, and if you
don't, then you may be hurting anyhow.

But this may be your way around the admin people.

~or~

Fire your host, and tell your cleints they will have to pay to make it
happen.  I would first fire my host.

--
               +-----------------+
               | Casey R. Tweten |
+--------------+--------+--------+--------------+
| * KiskiNet ISP        | HighVision Associates |
| * HighVision Studio   | Web Developer         |
| * ISP-ProServices     | www.highvision.com    |
| * CityBuilder.com     | crt@highvision.com    |
+-----------------------+-----------------------+
|   <joke>This is 100% virus free code</joke>   |
+-----------------------------------------------+

Steve Laybourn <redmeat@freei.net> wrote in message
news:376A7407.3806A7E3@freei.net...
: Hello again!
:    The answers I got for solving my Net::FTP problems were just the
: thing I needed. I had spent nearly two months trying to get something
: working, but only one day's worth of research in here was enough of a
: catalyst to get the thing working. Thanks, everyone!
:    OK, a new problem...
:    One of the websites I've programmed has an image upload feature (Hang
: on, this IS a Perl question, NOT a CGI question!). Now, while it is easy
: to detect for incorrect, non-existant, or oversize files, it is NOT easy
: to get data from the JPEG files themselves.
:    The Encyclopedia of Graphics File Formats tells me enough that I can
: scan a JPEG header to verify that the file is indeed a JPEG image, but
: it does not tell me how to read the image's height and width in pixels.
:    I know this can easily be done using Image::Size and Image::Magick
: (or is it Perl::Magick now?) but the current server admins want a
: potload of money just to install those two modules. And since the
: clients are cheapskates as well, this puts me in a rather difficult
: spot.
:    All I want to know this time around is: How can I get the height and
: width of a JPEG image using Perl?
:    I only need to do this routine once (upon image upload), as these
: values will be stored in an associated database for HTML height and
: width tags.
:    Thanks so much for your help. Perl rocks!
:    Steve Laybourn
:




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

Date: Fri, 18 Jun 1999 13:19:34 -0500
From: Burton Kent <burton@lucent.com>
Subject: Re: Makefile.PL when you're not the admin
Message-Id: <376A8DB6.455F0E54@lucent.com>

That did the trick!

Burton

Tom Phoenix wrote:
> 
> On Wed, 16 Jun 1999, Burton Kent wrote:
> 
> > I have the library directory
> > added TWICE to @INC using #!/usr/bin/perl -l /home/burton/lib/perl
> 
> That won't do it (although you're close).
> 
> > and BEGIN {shift @INC, '/home/burton/lib/perl'}
> 
> And that won't do it correctly (although you're even closer).
> 
> You probably want this:
> 
>     use lib '/home/burton/lib/perl';
>     use String::Approx qw( or whatever... );
> 
> > Intel == facist scum.  Geez.
> 
> :-)
> 
> We all got a laugh a month or so ago when they accidentally sued a company
> they were trying to negotiate with. Oops, didn't mean to sue you. It was
> just a habit.... :-)
> 
> --
> Tom Phoenix       Perl Training and Hacking       Esperanto
> Randal Schwartz Case:     http://www.rahul.net/jeffrey/ovs/


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

Date: Fri, 18 Jun 1999 10:43:21 -0700
From: Tom Phoenix <rootbeer@redcat.com>
Subject: Re: math::Matrix
Message-Id: <Pine.GSO.4.02A.9906181042260.5420-100000@user2.teleport.com>

On Fri, 18 Jun 1999 casey@f5.com wrote:

> I am useing the Math::Matrix module and have run into a problem when I
> try to my values back out.  There doesn't seem to be anyway to get the
> product of a matrix multiplication except sending it to stdout via
> ->print.

If the author hasn't provided a method which you need, you should probably
ask the author to provide it. Cheers!

-- 
Tom Phoenix       Perl Training and Hacking       Esperanto
Randal Schwartz Case:     http://www.rahul.net/jeffrey/ovs/



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

Date: Fri, 18 Jun 1999 08:33:28 -0400
From: tadmc@metronet.com (Tad McClellan)
Subject: Re: newbie
Message-Id: <oaedk7.03m.ln@magna.metronet.com>

Daniel Grisinger (dgris@moiraine.dimensional.com) wrote:
: rlb@intrinsix.ca (Lee) writes:

: > In article <7kcf3d$6fr$1@nnrp1.deja.com>,
: > jvavatara@my-deja.com wrote:
: > 
: > >Is java overtaking perl?
: > 
: > Dear alt.rec.pets.cats:
: > 
: > Is it true that cats are nasty little beasts, and I should get a dog
: > instead?

: Yes.


   Naw, I like cats.

   You just have to remember to baste them frequently during preparation.


   <ducking...>


--
    Tad McClellan                          SGML Consulting
    tadmc@metronet.com                     Perl programming
    Fort Worth, Texas


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

Date: Fri, 18 Jun 1999 17:13:05 GMT
From: mjd@op.net (Mark-Jason Dominus)
Subject: Re: OO-Trap! I am confused
Message-Id: <7kdum2$1h5$1@monet.op.net>

[Mailed and posted]

In article <slrn7mjdgj.fo7.abigail@alexandra.delanet.com>,
Abigail <abigail@delanet.com> wrote:
>Yes, that's because Perl has an unintuitive OO model; one that basically
>sucks.

Regardless of whether that is true, I am surprised that you would say
it, because it is irrelevant.  The problem has nothing to do with OO.
It is a fundamental problem with references that occurs to some extent
in nearly all languages that have references.  You can demonstrate the
same problem OOlessly:

	$x = { cards => [], coins => [] };
	$y = { %$x };
	push @{$y->{cards}}, "Six of Spades";
	print @{$x->{cards}};	# Oops

Lisp has the same `problem':

	(define x '(foo bar))  
	(define y x)
	(set-car! y 17)
	(car x)			; Oops

The Lisp style for the problem assignment in the original example
would have done something more like this:

	$foo1->{'cards'} = [@{$foo1->{'cards'}}, "VISACard"];

rather than like this:

	$foo1->{'cards'}->[0] = "VISACard";

or, more likely:
	$foo1 = add_card($foo1, 'VISACard');

where add_card is some recursive precedure that creates an entirely
new data structure for $foo, with VISACard installed in the right
place; the old data structure is then discarded.

Lisp programmers are not surprised by this as often as Perl
programmers.  It is not because the problem is any different; it is a
social difference.  The programming paradigm is different, so that the
set! forms are very little-used.  Lisp programmers are trained to
avoid them, and are also trained that when they use set-car! (or
rplaca or whatever) they have to turn on the part of your brain that
worries about aliasing problems.  In Perl, assignment is ubiquitous,
and Perl programmers don't have that red flag---if they did, it would
always be on.

The Lisp folks might say that the `problem' is with the use of
assignment.  I don't think I'd want to say that, but it is one
reasonable interpretation of what is going on.  Some languages, like
Lisp, take the point of view that the *only* reasonable use of
assignment is *specifically* to alter aliased mutable data structures
in exactly this way.  To these people, your complaint that Perl's
model `sucks' is akin to complaining that you get a headache when you
stick that electric drill in your ear---``Well, don't do that then.''

> Perl happily shares data between objects; there's no copy-on-write.

I would be very interested to see the semantics of an effective
copy-on-write system.  You can't just go ahead and do it all the time,
because if you did then you would break all sorts of things.  For
example, nobody is surprised by this:

	$a = 3;
	$b = \$a;
	$a = 17;
	print "$$b\n"     # Prints 17 

But in a copy-on-write system, this would print 3 because the write to
$a would cause a copy operation to preserve the old value of $b.
Similarly:

	@list = (1, 2, 3);
	$elem = \$list[1];
	$$elem = 17;
	print "@list";   # Prints  1 2 3

If the language does copy-on-write *everywhere*, then references
become useless.  Therefore it is hard to imagine that copy-on-write is
what is wanted in all cases, and it is hard to characterize the cases
where it is wanted.  It is possible that a copy-on-write system could
be desirable if it were explicitly invoked, and if there were a
corresponding social change, so that people got in the habit of
writing

	my $self = deep_copy $fields;

instead of

	my $self = {%fields};

Better language support for `deep_copy' (including copy on write)
would make this social change easier.  But the burden is on you to
make a suggestion, since it was your idea, and I do not think it is as
simple as you seem to imply.


	


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

Date: Fri, 18 Jun 1999 10:22:58 -0700
From: Tom Phoenix <rootbeer@redcat.com>
Subject: Re: Opening a remote file?
Message-Id: <Pine.GSO.4.02A.9906181022220.5420-100000@user2.teleport.com>

On Fri, 18 Jun 1999, Simon Wistow wrote:

> > use CGI qw(:standard);
> > 
> > open(DATA, ">http://www.microsoft.com/index.asp">
> > print DATA header, start_html("Gone"),
> >         "gone for demoronisation", end_html;
> > close(DATA);
> 
> 
> PHP3 does exctly that. 

Were that it were true! (Perhaps you thought that the open was for input?)

-- 
Tom Phoenix       Perl Training and Hacking       Esperanto
Randal Schwartz Case:     http://www.rahul.net/jeffrey/ovs/



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

Date: Fri, 18 Jun 1999 13:18:10 -0400
From: evil Japh <jeffp@crusoe.net>
Subject: Re: Passing Hash - Am I Doing This Right?
Message-Id: <Pine.GSO.3.96.990618131557.3119A-100000@crusoe.crusoe.net>

[Message sent to Effie Rover as well]

On Fri, 18 Jun 1999, Effie Rover wrote:

>   &result = SaveOrderInfo($orderid, $timestamp, %query);

&result = ...?  I don't think you mean that.  $result, probably.  or even
@result or %result.  But NOT &result.

> sub SaveOrderInfo {
>   my $oid = $_[0];
>   my $ts = $_[1];
>   my %form = @_[2];
> }

No, in this case, it's best to define them all at once, like this:

my($oid,$ts,%form) = @_;

You COULD say my %form = @_[2..$#_], but I wouldn't do that.

-- 
Jeff Pinyan (jeffp@crusoe.net)
www.crusoe.net/~jeffp

Crusoe Communications, Inc.
732-728-9800
www.crusoe.net



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

Date: Fri, 18 Jun 1999 17:33:17 GMT
From: Scratchie <upsetter@ziplink.net>
Subject: Re: Passing Hash - Am I Doing This Right?
Message-Id: <xpva3.418$7X1.103642@news.shore.net>

evil Japh <jeffp@crusoe.net> wrote:
:> sub SaveOrderInfo {
:>   my $oid = $_[0];
:>   my $ts = $_[1];
:>   my %form = @_[2];
:> }

: No, in this case, it's best to define them all at once, like this:

: my($oid,$ts,%form) = @_;

Although I usually prefer to use references when passing hashes and arrays
to subroutines:

	mysub($a,$b,\%c);

	sub mysub {
		my $oid = shift @_;
		my $ts  = shift @_;
		my %form = %{shift @_};
		.
		.
		.

That way if I find I need to add another parameter in some cases, I don't
(necessarily) need to re-write all my existing subroutine calls.

--Art

PS: I realize that I don't explicitly need to say "@_" in any of the above
cases, but I prefer to.

-- 
--------------------------------------------------------------------------
                    National Ska & Reggae Calendar
                  http://www.agitators.com/calendar/
--------------------------------------------------------------------------


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

Date: Fri, 18 Jun 1999 17:14:10 GMT
From: andrew-johnson@home.com (Andrew Johnson)
Subject: Re: pattern match by column
Message-Id: <C7va3.1910$36.50520@news2.rdc1.on.home.com>

In article <m11zf91oq6.fsf@halfdome.holdit.com>,
 Randal L. Schwartz <merlyn@stonehenge.com> wrote:
! >>>>> "Michael" == Michael Culverhouse <mculverhouse@pinnacle.co.uk> writes:
! 
! Michael> I wish to change a certain string say '0101' to '9999' but only in columns
! Michael> 80 through 83.
! Michael> Does anyone know how this is acheived please?
! 
! substr($x, 79, 4) =~ s/0101/9999/;
! 

or, as a minor variation on a theme:

$_ = '1234567890'; #dummy string for initial substr reference
my $lval = \substr($_,3,4);
while(<DATA>){
    $$lval =~ s/0101/9999/;
    print;
}
__DATA__
1230101789
0101010101
1010101010
foo0101baz

regards
andrew


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

Date: 18 Jun 1999 17:22:56 GMT
From: Franklin Edward Sadler <gte482i@prism.gatech.edu>
Subject: Pattern Matching Question
Message-Id: <7kdv9g$q98@catapult.gatech.edu>

Ok...need some more answers.
Lets say I have database made (.txt file).
Each line consists of
"Movie Name"|"Type of Movie"\n
If I want to pattern match the name of the movie after reading it in would
be...
$Temp == /"James Bond"/ right?
I would appreciate any support as the book I am using isnt quite specific.
Thanx...

-- 
M	U	S	T	A	N	G	Z	!
Franklin Edward Sadler
Georgia Institute of Technology, Atlanta Georgia, 30332
Email: gte482i@prism.gatech.edu


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

Date: Fri, 18 Jun 1999 13:34:13 -0400
From: Craig Ciquera <craig@mathworks.com>
Subject: Re: Pattern Matching Question
Message-Id: <376A8315.5E3A382F@mathworks.com>

Franklin Edward Sadler wrote:

> Ok...need some more answers.
> Lets say I have database made (.txt file).
> Each line consists of
> "Movie Name"|"Type of Movie"\n
> If I want to pattern match the name of the movie after reading it in would
> be...
> $Temp == /"James Bond"/ right?
> I would appreciate any support as the book I am using isnt quite specific.
> Thanx...

$string = "James Bond";
if ($string =~ /James Bond/) { print "MATCH"; }

You may want to read:

perldoc perlre

Craig



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

Date: Fri, 18 Jun 1999 13:35:59 -0500
From: Burton Kent <burton@lucent.com>
To: Franklin Edward Sadler <gte482i@prism.gatech.edu>
Subject: Re: Pattern Matching Question
Message-Id: <376A918F.D39600E5@lucent.com>

I'm going to assume you don't want to match the "Type of Movie"

use:

$string =~ /James Bond.*|/

This will search for James Bond, and then check to make sure
it's the first ("Movie Name") field and not the second one.

Of course, this is Perl.  There's more than one way to do it.

Burton

Franklin Edward Sadler wrote:
> 
> Ok...need some more answers.
> Lets say I have database made (.txt file).
> Each line consists of
> "Movie Name"|"Type of Movie"\n
> If I want to pattern match the name of the movie after reading it in would
> be...
> $Temp == /"James Bond"/ right?
> I would appreciate any support as the book I am using isnt quite specific.
> Thanx...
>


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

Date: Fri, 18 Jun 1999 11:52:14 -0700
From: David Cassell <cassell@mail.cor.epa.gov>
Subject: Re: Perl scripts slows down servers?
Message-Id: <376A955E.AF7F1E1B@mail.cor.epa.gov>

Matt Sergeant wrote:
> 
> Marcel Grunauer wrote:
> >
> > Perl is faster than Java,
> 
> What evidence do you have to back that up? Just curious (I prefer Perl,
> but I'm aware that Java is faster now for some situations/solutions, and

Is it?  The examples I have been shown are the artificial
optimized-Java-situation vs Perl-with-no-optimization-and-no-
mod_perl kind of cases.  You can always slow Perl down if you
try.. or if you use scripts from Matt Wright.  :-)

> that's OK with me :))

Me too.  I'd just like to know.

David
-- 
David Cassell, OAO                     cassell@mail.cor.epa.gov
Senior computing specialist
mathematical statistician


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

Date: Fri, 18 Jun 1999 13:42:29 -0400
From: trader <trader@underwear.heuristics.com>
Subject: Re: problems receiving datastream via a socket
Message-Id: <376A8505.100943BE@underwear.heuristics.com>


Tom Phoenix wrote:
> 
> On Wed, 16 Jun 1999, trader wrote:
> > $sockaddr = "S n a4 x8";
> 
> They should really be using LWP::Simple.
> 
> > $workString .= "accept_UPS_license_agreement=yes";
> 
> Try LWP::Simple, and you'll probably be able to do this more easily. Good
> luck!

i found out from ups yesterday that their cgi is not working.  thanks
for the advice, though, i'm going to install the modules to make the lwp
work and do it both ways just for the hell of it.

-- 
The views expressed above are not necessarily shared by anyone else on
the planet.
Email address spam protected, remove underwear to reply.


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

Date: Fri, 18 Jun 1999 13:20:46 -0500
From: James Ludlow <ludlow@us.ibm.com>
Subject: Re: Question
Message-Id: <376A8DFE.CE08BABD@us.ibm.com>

carmela wrote:
> Where do I post employment information for the Perl community in Toronto?

www.pm.org

Look for the link to the Toronto PM.  They have a job board.

-- 
James Ludlow (ludlow@us.ibm.com)
(Any opinions expressed are my own, not necessarily those of IBM)


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

Date: 18 Jun 1999 18:04:57 GMT
From: ccwen@bu.edu (Chih-Hsin Wen)
Subject: Running Perl Simultaneously with another language..
Message-Id: <7ke1o9$l5m$1@news1.bu.edu>

	  Hi, I'm sort of new to Perl.. so any help would be appreciated. I'm
	  currently programming in a pretty new Hardware verification language
	  which is kind of a mix between C++ and Verilog. The language itself
	  is really unimportant to the problem. I would like to be able to
	  from my program create functions that will launch a perl interpreter
	  that runs simultaneously. So that I can send commands to the
	  interpreter from my program. I don't want to just be able to launch
	  scripts, but be able to create variables at one time, and access
	  them whenever I'd like. What my future plans are for this program to
	  launch a perl interpreter and use a Tk interface to show a graphical
	  real time simulation. So the program must be able to communicate
	  constantly..

	  Some Ideas I've had are to use named pipes or even internet Sockets
	  but I'd like to keep things fairly simple. What  I'm also wondering is, is
	  there a way to set perl in the backgroung to just wait for commands?
	  Is this like debugging mode? Any help would be really appreciated.

	  If you can, please reply to:

	     cwen@andrew.cmu.edu

	     Thank you.


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

Date: Fri, 18 Jun 1999 14:02:25 -0400
From: "AL" <pnkflyd51@hotmail.com>
Subject: Re: script to lookup phone number off website?
Message-Id: <7ke1m7$2gs$1@autumn.news.rcn.net>

Darn, can't I be lazy?



Tom Phoenix <rootbeer@redcat.com> wrote in message
news:Pine.GSO.4.02A.9906180926010.5420-100000@user2.teleport.com...
> On Fri, 18 Jun 1999, AL wrote:
>
> > I'm looking for a script that can pull the phone number off a
> > website like switchboard.com.  Anyone know of such a beast?
>
> If you're wishing merely to _find_ (as opposed to write) programs,
> this newsgroup may not be the best resource for you. There are many
> freeware and shareware archives which you can find by searching Yahoo
> or a similar service. Hope this helps!
>
> --
> Tom Phoenix       Perl Training and Hacking       Esperanto
> Randal Schwartz Case:     http://www.rahul.net/jeffrey/ovs/
>




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

Date: Fri, 18 Jun 1999 11:53:21 -0700
From: Tom Phoenix <rootbeer@redcat.com>
Subject: Re: script to lookup phone number off website?
Message-Id: <Pine.GSO.4.02A.9906181150230.5420-100000@user2.teleport.com>

On Fri, 18 Jun 1999, AL wrote:

> Tom Phoenix <rootbeer@redcat.com> wrote in message
> news:Pine.GSO.4.02A.9906180926010.5420-100000@user2.teleport.com...
> > On Fri, 18 Jun 1999, AL wrote:
> >
> > > I'm looking for a script that can pull the phone number off a
> > > website like switchboard.com.  Anyone know of such a beast?
> >
> > If you're wishing merely to _find_ (as opposed to write) programs,
> > this newsgroup may not be the best resource for you. There are many
> > freeware and shareware archives which you can find by searching Yahoo
> > or a similar service. 

> Darn, can't I be lazy?

Yes, you can, and I've told you how to go about doing so. Using an archive
is more virtuously lazy using Usenet.

-- 
Tom Phoenix       Perl Training and Hacking       Esperanto
Randal Schwartz Case:     http://www.rahul.net/jeffrey/ovs/



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

Date: Fri, 18 Jun 1999 11:48:41 -0700
From: David Cassell <cassell@mail.cor.epa.gov>
Subject: Re: sprintf and money
Message-Id: <376A9489.BD5F0F66@mail.cor.epa.gov>

James Stewart wrote:
> 
> Hi,
> 
> Can anyone point me to a place where I can find out how to zero pad
> numerical values so they always have two zeros after the decimal point?

Others have pointed out that you already have the answer in your
subject line.  The docs on (s)printf have the formats you want.
If you still have problems, show us your code to do this, and
what you got as opposed to what you wanted.

But if you're going to be working with money, do you really
want to use decimals?  Roundoff errors may creep up on you
in unexpected ways.  You might want to consider keeping an
integer (I'd use cents, but I'm American) and doing the
division only for formatted output.

HTH,
David
-- 
David Cassell, OAO                     cassell@mail.cor.epa.gov
Senior computing specialist
mathematical statistician


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

Date: Fri, 18 Jun 1999 13:26:08 -0500
From: Burton Kent <burton@lucent.com>
Subject: Using ^M within backquotes possible?
Message-Id: <376A8F40.2F123CC0@lucent.com>

I need to call a program from a shell.  To bypass a prompt, I have to echo "y^M"
to the program:

print   `cd $ROOT; echo "y\^M" | setnode g=$GENERIC node=$ROOT >/dev/nul
l 2>&1`;


This is what I get, instead of having the program ("setnode") run properly:

" | setnode g=$GENERIC node=$ROOT >/dev/null 2>&1


I have tried escaping the double quotes, escaping the ^M, and both.  No luck. 
Any suggestions!?  Should I be using an entirely different approach?

Burton


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

Date: Fri, 18 Jun 1999 14:40:21 -0400
From: brian@pm.org (brian d foy)
Subject: Re: Using cgi or servlets, now?
Message-Id: <brian-ya02408000R1806991440210001@news.panix.com>

In article <Pine.GSO.4.02A.9906180908250.5420-100000@user2.teleport.com>, Tom Phoenix <rootbeer@redcat.com> posted:

> On Fri, 18 Jun 1999, moi wrote:
> 
> > Subject: Using cgi or servlets, now?
> 
> You seem to have a question about using CGI programs or servlets. Perhaps
> the docs, FAQs, and newsgroups about these topics would be of assistance
> to you. Cheers!

those probably wouldn't point one towards mod_perl though :)

-- 
brian d foy                    
CGI Meta FAQ <URL:http://www.smithrenaud.com/public/CGI_MetaFAQ.html>
Perl Monger Hats! <URL:http://www.pm.org/clothing.shtml>


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

Date: Fri, 18 Jun 1999 17:25:03 GMT
From: xacto@my-deja.com
Subject: VERY SIMPLE QUESTION.
Message-Id: <7kdvd1$n4m$1@nnrp1.deja.com>

Hello all,

I am very unfamiliar with Perl in CGI but have been assigned the task
of transferring Perl based CGI files from a Apache Server to a WinNT
Server and still have the CGI function properly.  I've installed
ActivePerl and it seems like I'm on my way but I do have a question.
I've noticed that most files end with the .cgi extension.  Is there a
reason why Perl based files are named .cgi verus .pl?  Are they two
different file types altogether?  Any help would be great.

Thank You,
xacto


Sent via Deja.com http://www.deja.com/
Share what you know. Learn what you don't.


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

Date: Fri, 18 Jun 1999 20:20:25 +0200
From: Paul O'Driscoll <podski@hotmail.com>
Subject: Win32 OLE - Access is Denied
Message-Id: <376A8DE9.9FC1100E@hotmail.com>

Hello All,

A difficult involved problem !

Environment:
ActiveState Perl 5 (the latest)
Windows NT4 SP3 (Server)
Win32::OLE

I have a Perl script that is connecting to a custom OLE server (which is
an X.400 mail programme btw) and that sends some mail.  Nothing to
difficult.

If I launch the programme from the Console - no problems.

If I launch it from the Scheduler using the command

at <time> /interactive <programme name>

It only works if the schedule service is launched as my Domain
Administrator !!

Very strange !  Even a clone of the Domain Admin cannot handle it .. !

Anyway...I'm trying to get some sensible Perl debugging done on this
so I use the command

    Win32::OLE::LastError

This is helpful in that it returns an error 'Access is Denied'.

My question is .. how can I find out what cannot be accessed ?

regards

pod





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

Date: 12 Dec 98 21:33:47 GMT (Last modified)
From: Perl-Request@ruby.oce.orst.edu (Perl-Users-Digest Admin) 
Subject: Special: Digest Administrivia (Last modified: 12 Dec 98)
Message-Id: <null>


Administrivia:

Well, after 6 months, here's the answer to the quiz: what do we do about
comp.lang.perl.moderated. Answer: nothing. 

]From: Russ Allbery <rra@stanford.edu>
]Date: 21 Sep 1998 19:53:43 -0700
]Subject: comp.lang.perl.moderated available via e-mail
]
]It is possible to subscribe to comp.lang.perl.moderated as a mailing list.
]To do so, send mail to majordomo@eyrie.org with "subscribe clpm" in the
]body.  Majordomo will then send you instructions on how to confirm your
]subscription.  This is provided as a general service for those people who
]cannot receive the newsgroup for whatever reason or who just prefer to
]receive messages via e-mail.

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

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