[9026] in Perl-Users-Digest

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

Perl-Users Digest, Issue: 2644 Volume: 8

daemon@ATHENA.MIT.EDU (Perl-Users Digest)
Tue May 19 20:07:24 1998

Date: Tue, 19 May 98 17:01:35 -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           Tue, 19 May 1998     Volume: 8 Number: 2644

Today's topics:
        limiting floating digits/formatting form input <Andrew.D.Morgan-1@umn.edu>
    Re: New Math Modules (Ilya Zakharevich)
    Re: Non-static private variables (Ilya Zakharevich)
        One you glob it, once you don't? (Marek Jedlinski)
    Re: One you glob it, once you don't? (Martien Verbruggen)
    Re: One you glob it, once you don't? <tchrist@mox.perl.com>
        perl compiler for winnt stuboy@ac.net
        Perl to 'C' interface <hjoh@chevron.com>
    Re: regexp for strings of chars (Ilya Zakharevich)
        Setuid and children (Paul Medynski)
        Software vendor liability [Was: Does Perl have a IDE?] (Ken Fox)
        sort array of hashes (Irene Barg)
        stat function, strange behaviour, please help <richbodo@pacbell.net>
    Re: translate A-Z to 1-26 (Martien Verbruggen)
        |more trouble and more... <pierre_porter@y2k1000.ps.compuware.com>
        Digest Administrivia (Last modified: 8 Mar 97) (Perl-Users-Digest Admin)

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

Date: Tue, 19 May 1998 18:45:46 -0500
From: Andrew Morgan <Andrew.D.Morgan-1@umn.edu>
Subject: limiting floating digits/formatting form input
Message-Id: <356219AA.6D16DF73@umn.edu>

I wrote a small little script which takes a few variables and calculates
some a total number from them.  What I can't figure out from the
manual(s) is how to post the answer I want on the same (or new) html
page....
within the script, I have the html form and when a user submits it, I
want the second print html stuff to refresh the screen somehow. Right
now, it just posts the answer I want at the bottom of the page.

Also, I can't get the decimal points right for the answer...
the code is <html><body>
<center>Your Savings Are $savings
<a href=$calculator>Back to the Calculator</a></center>
</body></html>

the answer is always some number like 45.000000000089 or such.....

thanks in advance....
andy



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

Date: 19 May 1998 21:50:41 GMT
From: ilya@math.ohio-state.edu (Ilya Zakharevich)
Subject: Re: New Math Modules
Message-Id: <6jsurh$slr$1@mathserv.mps.ohio-state.edu>

[A complimentary Cc of this posting was sent to Ala Qumsieh 
<aqumsieh@matrox.com>],
who wrote in article <35619E34.EADF9EF7@matrox.com>:
> > Since the result is the same, the difference is pretty vague (in your
> > case it would correspond to ^0.5 being a badly-defined thing, in PARI
> > you need to "pick a branch" in the sense of defining
> >
> >     x_1_2 = mod(t, t^2-x)
> >
> > which gives you a new datum x_1_2 which behaves as the square root
> > of x).
> >
> > Ilya
> 
>  To be honest, I don't quite get what you mean. I am not claiming that
> my modules
> are better than PARI. Nor am I saying that they (my modules) are perfect
> and take
> all cases into consideration. I just thought that a mathematical symbolic
> manipulation module might be of use to someone out there. Also, I don't
> understand
> what you meant by x_1_2 "behaves as the square root of x" .. but I believe that
> x^(0.5) IS the square root of x and its syntax is more intuitive to use.

If you pretend on doing things "mathematically", then you *know* that
x^0.5 does not make sense, until you pick a branch.  Having more
intuitive syntax is not a big win if you get wrong results.

Ilya


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

Date: 19 May 1998 22:14:23 GMT
From: ilya@math.ohio-state.edu (Ilya Zakharevich)
Subject: Re: Non-static private variables
Message-Id: <6jt07v$18h$1@mathserv.mps.ohio-state.edu>
Keywords: Non-static private variables

[A complimentary Cc of this posting was sent to Mark-Jason Dominus
<mjd@op.net>],
who wrote in article <6jsafh$hpa$1@monet.op.net>:
> >As I understand Perl classes are just packages, which are just name
> >spaces.  And instances of these classes are references to thingies which
> >are scalars, hashes or arrays.
> 
> This is exactly right.

Wrong.  Objects are not references, but the things you refer to.

Ilya


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

Date: Tue, 19 May 1998 20:59:34 GMT
From: cicho@polbox.com (Marek Jedlinski)
Subject: One you glob it, once you don't?
Message-Id: <3560d927.16237582@news.nask.org.pl>
Keywords: If you're happy and you know it, clunk your chains.

Confession: my perl runs on a win32 system. End-of-confession.

I was using the ActiveState port to develop various kinds of commandline
tools for my own use (not CGI ;). Last week, I was advised by Greg Bacon to
switch to Sarathy's port, which I did, and yes, this one installs and feels
and works much better (thank you, Greg). However, in switching from one
port to another I discovered what seems to be an inconsistency, somewhat
annoying, as regards file globbing. I'll include sample code at the end of
this post; here is a basic idea of what happens.

Under ActiveState, when a script was supplied a file mask on commandline,
such as
	perl runme.pl *.txt
the script didn't actually _see_ '*.txt'; what it received was a list of
matching files. (Which, incidentally, broke my original idea for the script
itself, since I wanted to interpret the commandline input differently based
on whether a file name or a file *mask* was given. Here I could not
distinguish between the two, I was always getting file names only.) 

I understand that the OS was doing the globbing and feeding the filenames
to Perl - or if perlglob.exe was running I never noticed since I was
editing in full-screen mode. (BTW, I was not using "File::DosGlob".) Only
if there were no matching files, the actual filemask got through to the
script. I didn't like that, since I'd much rather use readdir and/or
File::Find for my purpose, but I learned to live with it.

Under Sarathy's port, however, no such "pre-globbing" takes place. Now the
very same script does receive only the actual filemask. This is the
behavior I prefer, but of course a question about portability arises. It's
not a *burning* question for me at the moment, but I am curious. How would
the same script work on a unix system? And, more to the point, is there a
way of ensuring that file globbing will work the same way across win32
*and* unix platforms? Best of all, can I ensure that the OS doesn't meddle
with globbing at all and leave the dirty work to the script or perhaps a
CPAN module? Or is OS globbing the way to go, actually?


Code sample follows; thanks in advance for a hint (yes, a pointer will do
just fine :)

 .marek

sub parse_cmdline {
unless ($ARGV[0]) { &help_and_quit; }
# MUST receive at least 1 argument

my $opt;

foreach $opt (@ARGV) { 
# accept any number of file names or paths

# If an option string contains wildcard characters,
# treat it as a file mask (e.g. *.txt); Otherwise,
# assume it is a filename, and use it to rename the
# default output file

# >>> This is of course what was being broken by
# >>> OS globbing under ActiveState port.

if ( $opt =~ /(\*|\?)/ ) { # has wildcards!
    push( @MASKS, $opt );
    print "$opt is a filemask; stuffing.\n";  # DEBUG ONLY

} else {

    # a filename or a path. If ends with '\' or '/',
    # assume a path, add '*.*' and stuff to @MASKS.
    # Otherwise, assume a filename & use it to rename 
    # the default outfile.

    if ( $opt =~ /(\\|\/)$/ ) { # ends with a "\" or "/"
        $opt .= '*.*';
        push( @MASKS, $opt );
        print "$opt is a pathname; stuffing.\n"; # DEBUG ONLY
    } else {
        print "$opt is a filename; renaming output file.\n";
        $fn_out = $opt; # change default name
    }
}
} # end foreach loop
} # end sub

This works under Sarathy's port. Under ActiveState I had to scrap the idea
of collecting filemasks and just collect full pathnames instead.

-- 
After things go from bad to worse, the cycle will repeat itself.
http://come.to/fnord/



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

Date: 19 May 1998 23:11:42 GMT
From: mgjv@comdyn.com.au (Martien Verbruggen)
Subject: Re: One you glob it, once you don't?
Message-Id: <6jt3je$sbl$2@comdyn.comdyn.com.au>

In article <3560d927.16237582@news.nask.org.pl>,
	cicho@polbox.com (Marek Jedlinski) writes:

> Under Sarathy's port, however, no such "pre-globbing" takes place. Now the

This comes up regularly on this newsgroup. perl, by default, doesn't
do any globbing, because that's the normal way of doing things under
unix, where the shell does globbing. Under NT, the shell doesn't,
so the ActiveState port does it automatically (this has both
advantages and disadvantages). The GS port by default will behave
the same as the standard perl, but can be configured to do
globbing for you automatically. How to do that is probably mentioned
in the documentation that comes with it.

Martien
-- 
Martien Verbruggen                  | 
Webmaster www.tradingpost.com.au    | If at first you don't succeed, try
Commercial Dynamics Pty. Ltd.       | again. Then quit; there's no use being
NSW, Australia                      | a damn fool about it.


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

Date: 19 May 1998 23:27:54 GMT
From: Tom Christiansen <tchrist@mox.perl.com>
Subject: Re: One you glob it, once you don't?
Message-Id: <6jt4hq$apt$1@csnews.cs.colorado.edu>
Keywords: If you're happy and you know it, clunk your chains.

 [courtesy cc of this posting sent to cited author via email]

In comp.lang.perl.misc, 
    cicho@polbox.com (Marek Jedlinski) writes:
:*Best of all, can I ensure that the OS doesn't meddle
:with globbing at all and leave the dirty work to the script or perhaps a
:CPAN module? Or is OS globbing the way to go, actually?

It actually is.  Applications shouldn't be worrying about that.
But I remember Sarathy seemed to have some reasons last time this 
was brought up.  I never bought it though.  There's something
fundamentally clean and uniform about the shell doing the globbing,
not the application.

He said you can use 

    set PERL5OPT=-MWild

in your shell to make it work right.

http://www.dejanews.com/dnquery.xp?QRY=glob&ST=PS&DBS=1&defaultOp=AND&maxhits=25&format=terse&showsort=score&groups=comp.lang.perl.misc&authors=gsar@*&subjects=&fromdate=&todate=

--tom



-- 
It is the business of little minds to shrink.
                --Carl Sandburg


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

Date: Tue, 19 May 1998 20:55:39 GMT
From: stuboy@ac.net
Subject: perl compiler for winnt
Message-Id: <6jsrkb$p99$1@nnrp1.dejanews.com>

Does anyone know of a perl 5 compiler for windows nt?

Thanks,

stuboy
stuboy@ac.net

-----== Posted via Deja News, The Leader in Internet Discussion ==-----
http://www.dejanews.com/   Now offering spam-free web-based newsreading


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

Date: Tue, 19 May 1998 14:34:57 -0600
From: John Holmes <hjoh@chevron.com>
Subject: Perl to 'C' interface
Message-Id: <3561ECF1.215F@chevron.com>

I am a neophyte perl 5 user trying to use the Perl to C interface. 
Some of my C library functions call other functions in the same C
library. I can't seem able to resolve these references.

e.g

void
foo1()
	CODE:
	foo2();

void
foo2()
	CODE:
	....

The foo2 references remains unresolved after the module is installed.
Is there a special syntax for calling foo2? Or is it a link problem?
I'm installing my module as a dynamic library.

All the examples in the perl man pages don't do this type of thing.
There's examples of calling C library functions like sin and cos, but
none showing how you call another function in your own library.
I've even tried splitting the function into separate libraries.

Can anyone help?.

John Holmes
Interpretation and Technology Team
Earth Science Services
Chevron Canada Resources
(403) 234-5006
hjoh@chevron.com


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

Date: 19 May 1998 22:10:46 GMT
From: ilya@math.ohio-state.edu (Ilya Zakharevich)
Subject: Re: regexp for strings of chars
Message-Id: <6jt016$11u$1@mathserv.mps.ohio-state.edu>

[A complimentary Cc of this posting was sent to Larry Rosler
<lr@hpl.hp.com>],
who wrote in article <6jsn1j$9r@hplntx.hpl.hp.com>:
> [posted and emailed]
> 
> sloop@mailcity.com wrote in message
> <3561d94d.49203470@news.xmission.com>...
> >>|     @trips = m/.(?<=(?=($triple)).)/go;
> 
> Before blowing this question away, you might have looked more closely at
> the snippets in the submission that Jari Aalto was questioning.
> I, for one, wondered what 'qr/.../' meant (quote regexp, but what is
> that, in view of the interpolation in the next line?)

Exactly what you said.  Quote as in m//.

	$a = qr/STUFF/;
	/$a/o;

is equivalent to

	/STUFF/;

> and what is '?.' ?

This *WAS* discussed in the part of the message that was stripped (by
whom?).

> I presume these are being introduced in Perl 5.005, but some discussion
> might help.  Rude answers don't help.

If you read my original message, you would know the answer about ?. .
And qr// did not make it into 5.005 due to a strike of perl developers
over licensing issues.

Ilya


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

Date: Tue, 19 May 1998 19:50:03 GMT
From: paulm@rc.gc.ca (Paul Medynski)
Subject: Setuid and children
Message-Id: <3561df8f.356936501@nntp.rc.gc.ca>

	I've got a script that uses Net::Ping.  I want to use icmp
packets to ping with, but the script has to be run as root in order
for icmp to work.  The problem I have is that this script is a cgi
(run by the web server) AND it calls other scripts using backquotes.  

	I tried using the setuid bit (chmod +s) but Perl taints
everything and I get Insecure $ENV{PATH} and $ENV{ENV}.  I tried
setting these within the script before calling the other scripts, but
that just gave me the message 'YOU DON'T HAVE SET-ID TURNED OFF IN
YOUR KERNEL yada yada yada'.  So I wrote a C wrapper, but that only
served to get me the original Insecure messages.

	Is there any way for me to make this beast work?  All I want
is for Perl to not make such a fuss about invoking shell commands from
within a setuid script.  Hell, I even tried rewriting Net::Ping but
that was a stupid idea, since there has to be a better way.  Any
advice?

Paul Medynski


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

Date: 19 May 1998 22:24:34 GMT
From: kfox@pt0204.pto.ford.com (Ken Fox)
Subject: Software vendor liability [Was: Does Perl have a IDE?]
Message-Id: <6jt0r2$10m4@eccws1.dearborn.ford.com>

Stefaan.Eeckels@ecc.lu (Stefaan A Eeckels) writes:
> cpierce1@cp500.fsic.ford.com (Clinton Pierce) writes:
> > Because I can ship production software to plants and not incur the
> > wrath of Ford Management if it's compiled under the Native C Compiler.
> > If people die because the C-Compiler screwed up, it's hard to sue
> > GNU--Sun Microsystems is another matter.
>
> Dead people are dead people, and it's Ford Management's job
> to ensure that the tools they use ... perform decently. It's
> not a responsible attitude to say that as long as the tool
> was bought from a cash-rich manufacturer no-one cares about
> its performance or correctness.

So who said Ford has that attitude?  Clinton's motivation for not
using gcc to ship production tools is that he does not "incur the
wrath of Ford Management."  Ford has the policy that all software
needs a purchase order. **

Ford does care about performance and reliability.  A lot.  Being
able to sue vendors for bad software encourages vendors to produce
good software -- which makes the car you drive safer and more
reliable. One of the troubles is that software manufacturers think
they can escape product liability.  This is absurd in my opinion.
If my home control software has a bug which burns my house down,
why shouldn't the manufacturer be accountable?

- Ken

** Reasonable people disagree with this policy because the quality
   of free software is often better than purchased software.  That
   doesn't mean the motivation of the policy makers is bad -- just
   that they don't know the software industry very well.

-- 
Ken Fox (kfox@ford.com)                  | My opinions or statements do
                                         | not represent those of, nor are
Ford Motor Company, Powertrain           | endorsed by, Ford Motor Company.
Analytical Powertrain Methods Department |
Software Development Section             | "Is this some sort of trick
                                         |  question or what?" -- Calvin


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

Date: 19 May 1998 23:32:29 GMT
From: barg@nickel.as.arizona.edu (Irene Barg)
Subject: sort array of hashes
Message-Id: <6jt4qd$ehq$1@news.ccit.arizona.edu>

Hello,

I'm running perl5.004_04 on a Sun SPARC.  

I want to sort an array of hashes based on the value of a specific key
in each hash.  I've read the Perl FAQ and Tom Christiansen's "Far More
Than Everything You've Ever Wanted to Know About Sorting", and I'm
still not getting it right.  A portion of my code follows:

        # foreach result, add new field 'rel_focus' so that we can sort on it
        for $href (@LoH) {
            # use obsdate to get PC relative focus
            $datetime = $href->{'psf_date_obs'};
	    $rel_focus = matchfoc($datetime);
	    $href->{'rel_focus'} = $rel_focus;	       # add a new key to $href
        } 
        if ($sortby eq 'Breathing') {
            # sort array of hashes by value of rel_focus
            @myLoH = sort byrel_focus @LoH;
        } else {
            @myLoH = @LoH;
        }

        for $href (@myLoH) {
          # hopefully sorted by rel_focus value
          print "$href->{'psf_targname'} $href->{'rel_focus'}\n";
	}
	          
sub byrel_focus {
    $rel_focus{$a} <=> $rel_focus{$b};
}  

I know I need to create a list of 'rel_focus' values, then sort
that list, but I don't know how to keep the association to the other keys
in each hash.  I need to get this done yesterday, that's why I'm
asking for help.  I'll keep digging but appreciate any help.

Thanks!  
irene
-------------------------------------------------------------------
Irene Barg			Email:	ibarg@as.arizona.edu
Steward Observatory		Phone:  520-621-2602
University of Arizona		FAX:    520-621-1891
Tucson, AZ  85721		http://nickel.as.arizona.edu/~barg
-------------------------------------------------------------------




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

Date: Tue, 19 May 1998 15:53:59 -0700
From: "Rich Bodo" <richbodo@pacbell.net>
Subject: stat function, strange behaviour, please help
Message-Id: <6jt2n0$56t$1@nntp1.ba.best.com>

Note: I also posted this to alt.perl without cross posting, although I
haven't recieved a response yet.  I just wanted to mention that.  I didn't
know about this group at the time, but it seems an appropriate place for
this one, I hope.  Thanks in advance!

Hi,

    I am new to perl and am writing a subroutine to print all of the
filenames, dates, and times in a given subdirectory.  I ran across some
unexpected behaviour from the stat function.  Only directories return an
atime or an mtime, not files.  I am not sure what I am doing wrong, but I
have enclosed my program, it's output, and the actual look of the directory
in NT. (I have tried the exact same program under digital unix on an
identical directory with the same results)

The directory I am looking to list filenames, atimes, and mtimes for:

Volume in drive C has no label.
Volume Serial Number is 3C6B-88A7

Directory of C:\Docs\newtrans\perl\userbob

05/19/98  03:23p        <DIR>          .
05/19/98  03:23p        <DIR>          ..
05/17/98  03:56p                    11 email2.em
05/17/98  03:55p                     9 emailone.em
05/17/98  03:55p                     9 fax1.tiff
05/17/98  03:55p                     7 fax2.tiff
05/17/98  03:54p                     6 voiceone.rm
05/17/98  03:54p                     7 voicetwo.rm
               8 File(s)             49 bytes
                            147,729,408 bytes free

The perl program I am using to do that:


# just check how many files the guy has, and what the extensions and dates
# of the files are.

print_files("userbob");

#
# sub print_files
# prints all the filenames in the given directory and their modification
dates and times.
# $_[0] = the username, which is also the directory name to look for files
in
#
sub print_files {
        $rmcount = $emcount = $tiffcount = 0;
        print "\nlooking for: $_[0]\n";
        opendir (USERDIR, "$_[0]") ||
                die no_such_userdir($_[0]);

        @allfiles = readdir USERDIR;
        closedir USERDIR;

# to get index of last value of allfiles use $#allfiles
        foreach $filename ( @allfiles ) {

                ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,
                        $atime,$mtime,$ctime,$blksize,$blocks)
                        = stat $filename;

                print "\nfilename: $filename,";
                print " has \t atime: $atime, mtime: $mtime, ctime: $ctime";

        }

        closedir(userdir);
}

# sub no_such_userdir
# somehow react to a non-existant user directory
sub no_such_userdir
{
        print "\nSORRY, USER $_[0] PLEASE CALL TECH SUPPORT";
}

The result:


looking for: userbob

filename: ., has   atime: 895616526, mtime: 895616526, ctime: 895468856
filename: .., has   atime: 895616209, mtime: 895577547, ctime: 895468856
filename: email2.em, has   atime: , mtime: , ctime:
filename: emailone.em, has   atime: , mtime: , ctime:
filename: fax1.tiff, has   atime: , mtime: , ctime:
filename: fax2.tiff, has   atime: , mtime: , ctime:
filename: voiceone.rm, has   atime: , mtime: , ctime:
filename: voicetwo.rm, has   atime: , mtime: , ctime:


Thanks!






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

Date: 19 May 1998 22:52:54 GMT
From: mgjv@comdyn.com.au (Martien Verbruggen)
Subject: Re: translate A-Z to 1-26
Message-Id: <6jt2g6$sbl$1@comdyn.comdyn.com.au>

In article <slrn6m3876.la4.arch@abts.net>,
	arch@abts.net (Shaun Sides) writes:
> Original message by: Juping  Jin <juping+@pitt.edu>
> Date: 18 May 1998 22:21:38 GMT
> Subject: translate A-Z to 1-26
> 
> 
>> I want to translate A-Z symbols to numberical symbols, and tried:
>> 
>> 	    s/([A-Z])/ord('\1')-65/g;
>> 
>> but it doesn't work. How can I achieve this result?
> 
> I may be wrong, but it looks to me as if you could use:
> 
> 	tr/A-Z/1-26/g;

Maybe you should try it. And then read a bit about tr/// in the perlop 
documentation.

Martien.
-- 
Martien Verbruggen                  | 
Webmaster www.tradingpost.com.au    | I'm desperately trying to figure out
Commercial Dynamics Pty. Ltd.       | why kamikaze pilots wore helmets - Dave
NSW, Australia                      | Edison 


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

Date: Tue, 19 May 1998 16:29:38 -0500
From: Pierre Porter <pierre_porter@y2k1000.ps.compuware.com>
Subject: |more trouble and more...
Message-Id: <3561F9C2.3EAC1CAB@y2k1000.ps.compuware.com>

Greetings,

	I am using Perl for Win32 Build 313 - Built 13:30:50 Nov  4 1997, 
version 5.003_07 on NT 4.0. 
I am having a problem with using |more at the command line.
Redirection at the command line (foo.pl text.txt >result.txt) also 
doesn't work. Previously this worked for me using perl 4 for NT and
perl 4 for DOS.

	Does anyone have any insight into this?
	Yes! I checked the FAQs.

-Pierre Porter
-- 
Mr. Porter does not speak
for Compuware Corporation
or any of its affiliates


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

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

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