[29122] in Perl-Users-Digest

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

Perl-Users Digest, Issue: 366 Volume: 11

daemon@ATHENA.MIT.EDU (Perl-Users Digest)
Fri Apr 20 14:10:03 2007

Date: Fri, 20 Apr 2007 11:09:08 -0700 (PDT)
From: Perl-Users Digest <Perl-Users-Request@ruby.OCE.ORST.EDU>
To: Perl-Users@ruby.OCE.ORST.EDU (Perl-Users Digest)

Perl-Users Digest           Fri, 20 Apr 2007     Volume: 11 Number: 366

Today's topics:
    Re: Booleans in Perl <paduille.4061.mumia.w+nospam@earthlink.net>
    Re: die problem? <jani-hur@no-mail.please.invalid>
    Re: FAQ 9.20 How do I send mail? <uri@stemsystems.com>
    Re: Filehandle Pipe Problem? <bik.mido@tiscalinet.it>
    Re: Filehandle Pipe Problem? xhoster@gmail.com
    Re: Filehandle Pipe Problem? <jani-hur@no-mail.please.invalid>
        Manipulate fields <smalladi@gmail.com>
    Re: Manipulate fields <klaus03@gmail.com>
    Re: Manipulate fields <purlgurl@purlgurl.net>
    Re: Manipulate fields <smalladi@gmail.com>
    Re: Manipulate fields <purlgurl@purlgurl.net>
    Re: Newbie queston on Perl and lex. <kevin@vaildc.net>
        perldoc perllocal <news@chaos-net.de>
    Re: Printing the next line of text of the file <bik.mido@tiscalinet.it>
    Re: Printing the next line of text of the file <abigail@abigail.be>
    Re: regex upper and lower case <purlgurl@purlgurl.net>
    Re: regex upper and lower case <purlgurl@purlgurl.net>
        Digest Administrivia (Last modified: 6 Apr 01) (Perl-Users-Digest Admin)

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

Date: Fri, 20 Apr 2007 13:24:41 GMT
From: "Mumia W." <paduille.4061.mumia.w+nospam@earthlink.net>
Subject: Re: Booleans in Perl
Message-Id: <ta3Wh.6792$3P3.1642@newsread3.news.pas.earthlink.net>

On 04/20/2007 04:47 AM, Mirco Wahab wrote:
> [...]
> package bool;
>   sub true { return 1 }
>   sub false { return 0 }
>   use constant TRUE => true;
>   use constant FALSE => false;
> [...]

Why is the extra step of creating functions needed? "Use constant" does 
this anyway behind the scenes, so you can just assign the values.

package bool;
   use constant TRUE => 1;
   use constant FALSE => 0;

package main;
   print bool::TRUE, "\n";
   print bool::FALSE, "\n";


-- 
Count the YOYOs:
http://home.earthlink.net/~mumia.w.18.spam/games_fever/


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

Date: Fri, 20 Apr 2007 15:20:15 GMT
From: Jani-Hur <jani-hur@no-mail.please.invalid>
Subject: Re: die problem?
Message-Id: <umz13cbtb.fsf@no-mail.please.invalid>

g4173c@motorola.com writes:

> #
> # First Check out the File...
> #
>     system ("cleatool co -unr -nc $revfilename") || die "Error:
> Couldn't Check Out $revfilename: $!\n";
> #
> # Open File, find the REV variable name and increament...
> #
>     open (REVFILE, "+<$revfilename") || die "Couldn't Open File
> $revfilename: $!\n";

Any reason why not use ClearCase::CtCmd or some other cleartool wrapper
module available in CPAN: 

http://search.cpan.org/search?mode=module;query=clearcase ?


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

Date: Fri, 20 Apr 2007 11:18:31 -0400
From: Uri Guttman <uri@stemsystems.com>
Subject: Re: FAQ 9.20 How do I send mail?
Message-Id: <x7irbrnkfs.fsf@mail.sysarch.com>

>>>>> "t" == timdooling  <timdooling@qconline.com> writes:

  t> "timdooling" <timdooling@qconline.com> wrote:
  >> I remade the code as follows (I noticed the lack of newline):

  t> #!/usr/bin/perl --
  t> require 5;

why do you have that line? it serves no purpose as perl4 would barf on
any my declares. 

  t> if (open(LOG,">>sendmail.txt"))
  t> {

instead of making the entire code body under the if, instead fail if the
LOG doesn't open and exit. then the code is less indented and more
readable.

also use lexical handles instead of global barewords. same for sendmail.


  t> 			my @sendmail = (
  t> #			'/usr/sbin/sendmail -t',
  t> #			'/usr/bin/sendmail -t',
  t> #			'/usr/lib/sendmail -t',
  t> 			'/usr/sendmail -t',
  t> 			'/bin/sendmail -t'

instead of guessing like this with opening the pipe to sendmail, why
don't you just call -x on the paths and see which one actually exists
and is executable?? this long loop is wasteful and cluttered.

something like this (untested):

	my $sm_path ;

	foreach my $path ( qw(
		/usr/sbin/sendmail
		/usr/bin/sendmail
		/usr/lib/sendmail
		/usr/sendmail
		/bin/sendmail ) ) {

		next unless -x $path ;

		$sm_path = $path ;
		last ;
	}

now you know where sendmail is and can use it.

  t> 			if (my $open_result = open(SENDMAIL, "|$_"))

	my $sm_open = open( my $sm_pipe, "|$sm_path" ) ;

	die "can't pipe to $sm_path $!" unless $sm_open ;


  t> 					print SENDMAIL 'From: <timdooling@qconline.com>\n';
  t> 					print SENDMAIL 'To: <timdooling@qconline.com>\n';
  t> 					print SENDMAIL 'Subject: test\n';
  t> 					print SENDMAIL 'Content-type:  text/plain\n\n';
  t> 					print SENDMAIL 'test\n\n';

use a here doc to see what you are really printing (multiple prints are
fugly). escape @ so they won't interpolate.

print $sm_pipe <<SM ;

From: <timdooling\@qconline.com>
To: <timdooling@qconline.com>
Subject: test
Content-type:  text/plain

test
SM

my $close_pipe = close( $sm_pipe ) ;

print LOG "close result [$slose_pipe] error $!" unless $close_pipe ;

  t> Still no mail.  I am stumped.

well, you send garbage (no newlines as they were single quoted) to an
unknown sendmail. you didn't put the proper end of headers in the right
place (a blank BEFORE content). you don't print the proper close error
message ($!).

  t> I assume it is a server problem at this point.  Any ideas?

i know it is a long list of code bugs.

why don't you use a module? plenty of mail modules and some will find
the correct sendmail for you.

uri

-- 
Uri Guttman  ------  uri@stemsystems.com  -------- http://www.stemsystems.com
--Perl Consulting, Stem Development, Systems Architecture, Design and Coding-
Search or Offer Perl Jobs  ----------------------------  http://jobs.perl.org


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

Date: Fri, 20 Apr 2007 15:35:37 +0200
From: Michele Dondi <bik.mido@tiscalinet.it>
Subject: Re: Filehandle Pipe Problem?
Message-Id: <5ifh235g110n6c2oocd8thdvq32nrjoadg@4ax.com>

On 20 Apr 2007 05:25:38 -0700, g4173c@motorola.com wrote:

>sub CC_ChkOut {
>    my $ccfile = shift (@_);
>#
># Check to see if the file is all ready checked out, if not check it
>out unreserved.
>#
>    open (CC, "cleartool lsco -me $ccfile |") or die "Error: Problem
>with check file status: $!\n";
>    while (<CC>) {
>        if (/checkout/) {
>            print "All ready checked out...\n";
>        }
>        else {
>            system ("cleartool co -unr -nc $ccfile") == 0 || die
>"Error: Couldn't Check Out $ccfile: $!\n";
>        }
>    }
>}

I'm not really sure if I understand what you mean. Let me try: you
want to run the command "cleartool lsco -me $ccfile" and grab its
output. If it contains 'checkout', then print an informative message.
Or else issue the system() command. In this case you may use qx//:

  sub CC_ChkOut {
      my $ccfile = shift;
      defined(my $out=qx/cleartool lsco -me $ccfile/) or
        die "Error: problem checking `$$ccfile' status. ($?)\n";
      if ($out =~/checkout/) {
          print "All ready checked out...\n";
      } else {
          system("cleartool co -unr -nc $ccfile") == 0 or
            die "Error: couldn't check out `$ccfile': $?\n";
      }
  }


Michele
-- 
{$_=pack'B8'x25,unpack'A8'x32,$a^=sub{pop^pop}->(map substr
(($a||=join'',map--$|x$_,(unpack'w',unpack'u','G^<R<Y]*YB='
 .'KYU;*EVH[.FHF2W+#"\Z*5TI/ER<Z`S(G.DZZ9OX0Z')=~/./g)x2,$_,
256),7,249);s/[^\w,]/ /g;$ \=/^J/?$/:"\r";print,redo}#JAPH,


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

Date: 20 Apr 2007 16:11:52 GMT
From: xhoster@gmail.com
Subject: Re: Filehandle Pipe Problem?
Message-Id: <20070420121154.359$wi@newsreader.com>

g4173c@motorola.com wrote:
> D'oh!
>
> sub CC_ChkOut {
>     my $ccfile = shift (@_);
> #
> # Check to see if the file is all ready checked out, if not check it
> out unreserved.
> #
>     open (CC, "cleartool lsco -me $ccfile |") or die "Error: Problem
> with check file status: $!\n";
>     if (eof(CC)) {
>         system ("cleartool co -unr -nc $ccfile") == 0 || die "Error:
> Couldn't Check Out $ccfile: $!\n";
>     }
>     else {
>         print "All ready checked out...\n";
>     }
>     close (CC);
> }

Isn't that race condition?  I'm not familiar with cleartool, but it seems
like there should a way to issue a single command which will combine
both functionalities atomically.  It it is not already checked out, check
it out unreserved.  Otherwise, report the error.

Xho

-- 
-------------------- http://NewsReader.Com/ --------------------
Usenet Newsgroup Service                        $9.95/Month 30GB


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

Date: Fri, 20 Apr 2007 16:18:08 GMT
From: Jani-Hur <jani-hur@no-mail.please.invalid>
Subject: Re: Filehandle Pipe Problem?
Message-Id: <uzm53aukf.fsf@no-mail.please.invalid>

g4173c@motorola.com writes:

>    I have the following code for checking if a file is all ready
> checked out for editing.

I do the same job with ClearCase::CtCmd. I also use different
cleartool command to find out if the element is checked out or not.

metsis: /vob/test (519) $ cat ~/bin/perl/perl0001.pl
#!/opt/perl5.8.5/bin/perl

use strict;
use warnings;

use Carp;
use Smart::Comments;

# Fri Apr 20 17:41:16 EEST 2007

use ClearCase::CtCmd;

sub is_checkedout {
  my ( $elem ) = @_;

  my $cmd = "describe -short $elem";

  my @ret = ClearCase::CtCmd::exec( $cmd );

  ### @ret

  croak( 'command failed' ) if $ret[0];

  return $ret[1] =~ m{CHECKEDOUT$};
}

sub checkout {
  my ( $elem ) = @_;

  my $cmd = "checkout -unreserved -ncomment $elem";

  my @ret = ClearCase::CtCmd::exec( $cmd );

  ### @ret

  croak( 'command failed' ) if $ret[0];
}

my $is_co = is_checkedout( $ARGV[0] );

checkout( $ARGV[0] ) if not $is_co;
metsis: /vob/test (519) $ ctls test.txt
test.txt@@/main/50                                     Rule: TEST_DEV
metsis: /vob/test (521) $ ~/bin/perl/perl0001.pl test.txt

### @ret: [
###         0,
###         'test.txt@@/main/50
',
###         ''
###       ]


### @ret: [
###         0,
###         'Checked out "test.txt" from version "/main/50".
',
###         ''
###       ]

metsis: /vob/test (522) $ ctls test.txt   
test.txt@@/main/CHECKEDOUT from /main/50               Rule: CHECKEDOUT
metsis: /vob/test (522) $ ~/bin/perl/perl0001.pl test.txt

### @ret: [
###         0,
###         'test.txt@@/main/CHECKEDOUT
',
###         ''
###       ]

metsis: /vob/test (522) $ ctls test.txt   
test.txt@@/main/CHECKEDOUT from /main/50               Rule: CHECKEDOUT
metsis: /vob/test (522) $ ct unco -rm test.txt
Checkout cancelled for "test.txt".
metsis: /vob/test (522) $


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

Date: 20 Apr 2007 09:33:42 -0700
From: Sashi <smalladi@gmail.com>
Subject: Manipulate fields
Message-Id: <1177086822.778367.44110@b75g2000hsg.googlegroups.com>

All,

I have a csv file. The second field is an int and I need it to be
replaced with the two's power of itself.
For example if the number is 22, I need it replaced with two raised to
the power of 22.
The remaining fields are IP address which should be replaced with the
corresponding ints, ie use the inet_aton() funcion. There will be at
least two but no more fields per row.

I'm a Perl newbie so if someone could point me to a solution that'll
be a help.

Thanks,
Sashi



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

Date: 20 Apr 2007 09:51:31 -0700
From: Klaus <klaus03@gmail.com>
Subject: Re: Manipulate fields
Message-Id: <1177087891.768686.319250@e65g2000hsc.googlegroups.com>

On Apr 20, 6:33 pm, Sashi <small...@gmail.com> wrote:
> I have a csv file. The second field is an int and I need it to be
> replaced with the two's power of itself.
> For example if the number is 22, I need it replaced with two raised to
> the power of 22.
> The remaining fields are IP address which should be replaced with the
> corresponding ints, ie use the inet_aton() funcion. There will be at
> least two but no more fields per row.
>
> I'm a Perl newbie so if someone could point me to a solution that'll
> be a help.

for big integers (i.e. > 2 ** 32)
use bigint;

Other than that, I would suggest you start your program with the
following two lines:

use strict;
use warnings;

This gives you plenty of warnings in case you go the wrong way.

But then again, this is only a suggestion, if you prefer not to have
"use strict" / "use warnings", your program can run without (but it
might not produce the expected result).

--
Klaus



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

Date: Fri, 20 Apr 2007 09:52:45 -0700
From: Purl Gurl <purlgurl@purlgurl.net>
Subject: Re: Manipulate fields
Message-Id: <-pKdnSyAhdp-crXbnZ2dnUVZ_hisnZ2d@giganews.com>

Sashi wrote:


> I have a csv file. The second field is an int and I need it to be
> replaced with the two's power of itself.
> For example if the number is 22, I need it replaced with two raised to
> the power of 22.
> The remaining fields are IP address which should be replaced with the
> corresponding ints, ie use the inet_aton() funcion. There will be at
> least two but no more fields per row.


None can provide a viable solution in lieu of a data example.

Provide a precise and exact example of your data.

Purl Gurl


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

Date: 20 Apr 2007 10:11:34 -0700
From: Sashi <smalladi@gmail.com>
Subject: Re: Manipulate fields
Message-Id: <1177089092.498409.150620@b75g2000hsg.googlegroups.com>

> None can provide a viable solution in lieu of a data example.
>
> Provide a precise and exact example of your data.
>
> Purl Gurl

199.67.218.64,26,199.67.218.76,199.67.218.77
199.67.236.224,28,199.67.236.225,
199.67.236.240,28,199.67.236.241,



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

Date: Fri, 20 Apr 2007 10:44:56 -0700
From: Purl Gurl <purlgurl@purlgurl.net>
Subject: Re: Manipulate fields
Message-Id: <8P6dnThA0_6DYbXbnZ2dnUVZ_h-vnZ2d@giganews.com>

Sashi wrote:

(context snipped by Sashi)

Context is to replace the second field of CSV data with

   2 ** (some number in second field)

>>None can provide a viable solution in lieu of a data example.

>>Provide a precise and exact example of your data.

> 199.67.218.64,26,199.67.218.76,199.67.218.77
> 199.67.236.224,28,199.67.236.225,
> 199.67.236.240,28,199.67.236.241,


#!perl

$input = "199.67.218.64,26,199.67.218.76,199.67.218.77";

$input =~ s/,(\d+),/,2 ** $1,/;

print $input;

print "\n\n";

$input = "199.67.218.64,26,199.67.218.76,199.67.218.77";

if ($input =~ /,(\d+),/)
  {
   $new = 2 ** $1;
   $input =~ s/,(\d+),/,$new,/;
  }

print $input;


PRINTED RESULTS:

199.67.218.64,2 ** 26,199.67.218.76,199.67.218.77

199.67.218.64,67108864,199.67.218.76,199.67.218.77



Purl Gurl


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

Date: Fri, 20 Apr 2007 13:51:24 GMT
From: Kevin Michael Vail <kevin@vaildc.net>
Subject: Re: Newbie queston on Perl and lex.
Message-Id: <kevin-1C76D3.09512420042007@news.verizon.net>

In article <1177048914.825711.40980@p77g2000hsh.googlegroups.com>,
 somedeveloper@gmail.com wrote:

> 1. If my needs are only lexical scanning (and not compiler- and
> interpretor-writing), and
> 2. If I'm proficient in Perl and Perl regular expressions,
> 
> would I ever need to learn a tool such as f/lex?  Is there anything
> that Perl REs cannot do easily/elegantly which f/lex can, for example?

Perl REs are more powerful than f/lex, but the latter makes up for it in 
speed.
-- 
boss, sometimes i think           |  kevin michael vail
that our friend mehitabel         |  kevin@vaildc.net
is a trifle too gay               |
        -- archy                  |  wotthehell wotthehell


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

Date: Fri, 20 Apr 2007 17:49:57 +0200
From: Martin =?iso-8859-1?Q?Ki=DFner?= <news@chaos-net.de>
Subject: perldoc perllocal
Message-Id: <slrnf2ho95.lf.news@maki.homeunix.net>

Hello together,

with "perldoc perllocal" I can get some Information about modules I
installed myself.

My question:
Where is this information usually stored (which file or so)?

I have Mac OS X 10.4.
If anybody knows, I'd be interested if there is something special about
where this info is stored.

Thanks in advance and best regards
Martin

-- 
perl -e '$S=[[73,116,114,115,31,96],[108,109,114,102,99,112],
[29,77,98,111,105,29],[100,93,95,103,97,110]];
for(0..3){for$s(0..5){print(chr($S->[$_]->[$s]+$_+1))}}'


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

Date: Fri, 20 Apr 2007 15:17:25 +0200
From: Michele Dondi <bik.mido@tiscalinet.it>
Subject: Re: Printing the next line of text of the file
Message-Id: <t9fh23lotigtpme4okndcq7u0v9ln29u04@4ax.com>

On 20 Apr 2007 13:02:00 GMT, anno4000@radom.zrz.tu-berlin.de wrote:

>Code insertions are only there to make it true that "You can do
>everything with a regex".

Funny! I suppose that with Perl 6's rules they will be more and more
common...


Michele
-- 
{$_=pack'B8'x25,unpack'A8'x32,$a^=sub{pop^pop}->(map substr
(($a||=join'',map--$|x$_,(unpack'w',unpack'u','G^<R<Y]*YB='
 .'KYU;*EVH[.FHF2W+#"\Z*5TI/ER<Z`S(G.DZZ9OX0Z')=~/./g)x2,$_,
256),7,249);s/[^\w,]/ /g;$ \=/^J/?$/:"\r";print,redo}#JAPH,


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

Date: 20 Apr 2007 14:30:48 GMT
From: Abigail <abigail@abigail.be>
Subject: Re: Printing the next line of text of the file
Message-Id: <slrnf2hjk8.7ug.abigail@alexandra.abigail.be>

Michele Dondi (bik.mido@tiscalinet.it) wrote on MMMMCMLXXX September
MCMXCIII in <URL:news:t9fh23lotigtpme4okndcq7u0v9ln29u04@4ax.com>:
""  On 20 Apr 2007 13:02:00 GMT, anno4000@radom.zrz.tu-berlin.de wrote:
""  
"" >Code insertions are only there to make it true that "You can do
"" >everything with a regex".
""  
""  Funny! I suppose that with Perl 6's rules they will be more and more
""  common...


You don't need to wait till Perl6 to have 'rules'.

Perl5.10 regular expressions allow you to parse any CFG, without having
to result to (?{ }) or (??{ }).



Abigail
-- 
perl -le 's[$,][join$,,(split$,,($!=85))[(q[0006143730380126152532042307].
          q[41342211132019313505])=~m[..]g]]e and y[yIbp][HJkP] and print'


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

Date: Fri, 20 Apr 2007 06:13:43 -0700
From: Purl Gurl <purlgurl@purlgurl.net>
Subject: Re: regex upper and lower case
Message-Id: <VcmdnS9rWpASIbXbnZ2dnUVZ_tmknZ2d@giganews.com>

Abigail wrote:

> Jerry wrote:

(snipped, broken quoting fixed)

>> I want to make every thing in the line lower case except want is between "".

>> $ex  = "popups.prompt( \"                 INV_NO_/S\ " + A.INV_NO_ + \"/\" + A.S )";

> That doesn't compile.


#!perl

$ex  = "popups.prompt( \"                 INV_NO_/S\ " + A.INV_NO_ + \"/\" + A.S )";

print $ex;

print "\n\n";

$ex  = 'popups.prompt( \"                 INV_NO_/S\ " + A.INV_NO_ + \"/\" + A.S )';

print $ex;


PRINTED RESULTS:

25308840

popups.prompt( \"                 INV_NO_/S\ " + A.INV_NO_ + \"/\" + A.S )



Purl Gurl


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

Date: Fri, 20 Apr 2007 06:47:27 -0700
From: Purl Gurl <purlgurl@purlgurl.net>
Subject: Re: regex upper and lower case
Message-Id: <S6SdnZbvE87kWbXbnZ2dnUVZ_revnZ2d@giganews.com>

Jerry wrote:


> I want to make every thing in the line lower case except want is between "".

> $ex  = "popups.prompt( \"                 INV_NO_/S\ " + A.INV_NO_ + \"/\" + A.S )";

> ending result will be

> $ex  = "popups.prompt( \"                 INV_NO_/S\ " + a.inv_no_ + \"/\" + a.s )";


Your    except want is between "".   is gibberish.

Your   A.S   is not between quote marks within your string.

Your parameters are gibberish.

Because your article is pure gibberish, readers can only
guess at what is your task. In the future, work towards
writing articles which are clear, concise and coherent.

Use a "quote word" method for your variable, such as changing
your quote marks to apostrophes, to prevent system specific
interpolation or other problems. Remove your escapes for your
quote marks, then process, or leave your escapes if your end
result truly needs those escapes, then process.

Again, because your article is pure gibberish, readers
can only guess at your task. If your language skills are
such you cannot write a clear, concise and coherent article,
have a friend assist you to write a good article with which
readers can work without a need to guess.


#!perl

$ex  = 'popups.prompt( "                 INV_NO_/S\ " + A.INV_NO_ + "/" + A.S )';

$ex =~ s/(\+ .* \+)/\L$1/;
$ex =~ s/(\+ .*)$/\L$1/;

print $ex;

print "\n\n";

$ex  = 'popups.prompt( \"                 INV_NO_/S\ " + A.INV_NO_ + \"/\" + A.S )';

$ex =~ s/(\+ .* \+)/\L$1/;
$ex =~ s/(\+ .*)$/\L$1/;

print $ex;


PRINTED RESULTS:

popups.prompt( "                 INV_NO_/S\ " + a.inv_no_ + "/" + a.s )

popups.prompt( \"                 INV_NO_/S\ " + a.inv_no_ + \"/\" + a.s )


Purl Gurl


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

Date: 6 Apr 2001 21:33:47 GMT (Last modified)
From: Perl-Users-Request@ruby.oce.orst.edu (Perl-Users-Digest Admin) 
Subject: Digest Administrivia (Last modified: 6 Apr 01)
Message-Id: <null>


Administrivia:

#The Perl-Users Digest is a retransmission of the USENET newsgroup
#comp.lang.perl.misc.  For subscription or unsubscription requests, send
#the single line:
#
#	subscribe perl-users
#or:
#	unsubscribe perl-users
#
#to almanac@ruby.oce.orst.edu.  

NOTE: due to the current flood of worm email banging on ruby, the smtp
server on ruby has been shut off until further notice. 

To submit articles to comp.lang.perl.announce, send your article to
clpa@perl.com.

#To request back copies (available for a week or so), send your request
#to almanac@ruby.oce.orst.edu with the command "send perl-users x.y",
#where x is the volume number and y is the issue number.

#For other requests pertaining to the digest, send mail to
#perl-users-request@ruby.oce.orst.edu. Do not waste your time or mine
#sending perl questions to the -request address, I don't have time to
#answer them even if I did know the answer.


------------------------------
End of Perl-Users Digest V11 Issue 366
**************************************


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