DCPM: perltutopen blues....
Matthew Browning
mb at matthewb.org
Mon Jul 7 03:01:27 CDT 2003
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
On Friday 04 July 2003 23:37, Simon Waters wrote:
> Thanks, I think I was just getting confused with the documentation.
> I'm still slightly vague on when perl is doing file handles, and when
> it is expecting file names... When they look vaguely like good old
> fashioned Bourne shell file handles all is clear.
>
Perl filehandles look pretty much the same as in C. The ones you are
dealing with are hidden behind two layers of obscurity. First, your
module takes a filename as an argument and manipulates the filhandle
internally, second it does so by means of the IO::File (standard)
module.
FWIW, I typically use IO::File because it allows you to treat a
filehandle as a scalar (by returning a reference to one) which is cool
if you want a painless way to build an array of them or chuck them
around various functions etc.
> My script has gained a plethora of "options", including the
> ubiquitous "--debug" ;-)
>
> Maybe trying to learn emacs and perl at the same time was a bit
> ambitious, but it will be the best indented code I've written in
> ages.
>
They make a good team:
C-x h C-u M-| perl -pe 'EXPR' (Mark Jason Dominus)
...I have bound F12 to a Lisp function that runs the script I am
working on, diplaying the output in a new buffer. That is quite handy.
Also, check out M-x cperl-perldoc for context-specific help. Use
cperl-mode, not the default perl-mode with GNU Emacs.
> Next fun bit will be a signal handler, it all looks simple("use
> sigtrap" ?), but I never seen to find any example scripts - maybe I
> should squander another book token. Hmm 15GBP book tokens, 10GBP
> extra if WH Smiths... I'll go check the review section.
>
I guess the Camel is your best bet. I have read pretty much all the
books there are on Perl (seriously) and if there is one that really
made me think *wow* it is `Object-Oriented Perl' by Damien Conway
(Manning). Having said that, it does not address your problem.
> Then ensuring it is self documenting....
$ perldoc perlpod
> then sorting the output
> routines, and I'll be ready to fix the special cases...
>
...
> Why does "use warnings" dislike "@array[2]" and suggest "$array[2]",
> seems less clear to me, or am I missing something elementary?
The first is an array slice, the second an array element. While
contrary to the conventions we see in other languages, Perl wants you
to refer to a scalar as a scalar, even if it is an element of an array.
The first is a list, albeit with one element.
Just keep telling yourself: `it all makes perfect sense'...
Matthew Browning.
- --
http://matthewb.org/public_key.txt
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.1 (GNU/Linux)
iD8DBQE/CSjdy5o0lRFL2ooRAhURAJ4tuncYsFxI18P40SFGYlsuBAyDqACfbydl
5D8PxpXeyInasNmZya9L4/Q=
=u/Hv
-----END PGP SIGNATURE-----
More information about the Devoncornwall-pm
mailing list