|
Dont just convert to Perl - re-engineer!
There's a difference between converting a program from one language to another and re-engineering a program to make best use of a new language - and I had a couple of clear examples of that on our Perl for Larger Projects course today.
The following is "converted" code ...
if (! open (FH,"../Desktop/access_log.xyz")) {
print STDERR "We have a weeny problem there!\n";
exit (1);
}
Or "re-engineered" you can write ...
open (FH,"../Desktop/access_log.xyz")
or die "We have a weeny problem there!\n";
The following is "converted" code again ...
while ($line = <FH>) {
if (index($line,"cliad") > -1) {
print "$line";
}
}
which is much better written as
@info = <FH>;
@matched = grep(/cliad/,@info);
print @matched;
or perhaps even
print (grep(/cliad/,<FH>));
Why re-engineer?
• Performance
• Maintainability
• Readability
• Extendability (written 2007-10-18, updated 2007-10-19)
Associated topics are indexed under P704 - Managing Perl Projects [2375] Designing your data structures for a robust Perl application - (2009-08-25) [2070] Converting to Perl - the sort of programs you will write - (2009-03-08) [836] Build on what you already have with OO - (2006-08-17) P711 - An Introduction to Standards in Perl [3398] Perl - making best use of the flexibility, but also using good coding standards - (2011-08-19) [2875] A long day in Melksham ... - (2010-07-17) [2688] Security considerations in programming - what do we teach? - (2010-03-22) [1863] About dieing and exiting in Perl - (2008-11-01) [1853] Well structured coding in Perl - (2008-10-24) [1728] A short Perl example - (2008-07-30) [1555] Advanced Python, Perl, PHP and Tcl training courses / classes - (2008-02-25) [1345] Perl and Shell coding standards / costs of an IT project - (2007-09-11) [1221] Bathtubs and pecking birds - (2007-06-07) [1047] Maintainable code - some positive advice - (2007-01-21) [965] KISS - one action per statement please - Perl - (2006-12-05) [945] Code quality counts - (2006-11-26) [743] How to debug a Perl program - (2006-06-04) [668] Python - block insets help with documentation - (2006-04-04) [242] Satisfaction of training - (2005-03-11)
5646
Some other Articles
Pictures FramedSomeone else's weddingPerl - progress bar, supressing ^C and coping with huge data flowsUsing PHP to upload images / Store on MySQL database - security questionsDont just convert to Perl - re-engineer!Business to Business Networking - North and West Wilts / MelkshamFirst Alternative / what has happened there?Autumnal lighting on a London tripOrdnance Survey Grid Reference to Latitude / LongitudeConverting from postal address to latitude / longitude
|
4088 posts, page by page
Link to page ... 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82 at 50 posts per page
This is a page archived from The Horse's Mouth at
http://www.wellho.net/horse/ -
the diary and writings of Graham Ellis.
Every attempt was made to provide current information at the time the
page was written, but things do move forward in our business - new software
releases, price changes, new techniques. Please check back via
our main site for current courses,
prices, versions, etc - any mention of a price in "The Horse's Mouth"
cannot be taken as an offer to supply at that price.
Link to Ezine home page (for reading).
Link to Blogging home page (to add comments).
|
|