Home Accessibility Courses Twitter The Mouth Facebook Resources Site Map About Us Contact
 
Python and Tcl - public course schedule [here]
Private courses on your site - see [here]
Please ask about maintenance training for Perl, PHP, Lua, etc
 
How much has Perl (and other languages) changed?

How much has Perl code mover forward over the years? A lot, and not a lot. To some extend, programming languages are the eye of the storm of technology - and that's because people who invest in code want it to be good for many years, so the same tools are used for several generations of products, with perhaps incremental rather than complete changes.

I was minded of this when asked for a binary data handling demo on today's course, and I pulled up an ancient example called ystwth.pl from the days we named examples after a theme, and the theme of the Perl course was rivers. You'll see what a big language Perl is when you realise I was getting pretty desparate to choose the Ystwyth at Aberystwyth (the main river there is the Rheidol, of course, but I digress).

Anyways - here's the new code ... a better Usage line, using the newer 3 parameter form of the open function, and frankly much of the other change is me tidying up my own code. I have decided NOT to use say because not everyone has upgraded to a Perl that supports in yet or at least hadn't in my group of trainees, and I'm not talking Perl 6 ... yet. But there's another story I have there, to write up in the morning.

# Checking whether files are in GIF format and if they are reporting image size
# Nice demo of a little bit of binary data handling
 
die ("Usage: $0 filename [filename [filename ....]]\n") unless @ARGV;
 
foreach $fn (@ARGV) {
  if (open FH,"<",$fn) {
    read (FH,$buffer,10);
    ($gifword,$giflevel,$x,$y)= unpack("a3a3vv",$buffer);
    if ($gifword ne "GIF") {
      print ("$fn is NOT a valid GIF file\n\n");
    } else {
      print ("$fn - GIF file - version $giflevel\n");
      print ($x," pixels wide by ", $y," pixels high\n\n");
    }
  } else {
    print "Failed to open file $fn - $!\n\n";
  }
}
 
__END__
 
Sample output:
 
20-dynamic:bperl grahamellis$ perl bincopi
Usage: bincopi filename [filename [filename ....]]
20-dynamic:bperl grahamellis$ perl bincopi *.gif
copy.gif - GIF file - version 89a
72 pixels wide by 73 pixels high
 
20-dynamic:bperl grahamellis$ perl bincopi *.gif dfjsjkfdfs bincopi
copy.gif - GIF file - version 89a
72 pixels wide by 73 pixels high
 
Failed to open file dfjsjkfdfs - No such file or directory
 
bincopi is NOT a valid GIF file
 
20-dynamic:bperl grahamellis$


The new example is also [here] on the web site.
(written 2011-06-10)

 
Associated topics are indexed as below, or enter http://melksh.am/nnnn for individual articles
P050 - Perl - General
  [4301] Perl - still a very effective language indeed for extracting and reporting - (2014-09-20)
  [4296] Polishing the Perl courses - updated training - (2014-09-17)
  [3911] How well do you know Perl and / or Python? - (2012-11-04)
  [3902] Shell - Grep - Sed - Awk - Perl - Python - which to use when? - (2012-10-22)
  [3823] Know Python or PHP? Want to learn Perl too? - (2012-07-31)
  [3407] Perl - a quick reminder and revision. Test yourself! - (2011-08-26)
  [3332] DNA to Amino Acid - a sample Perl script - (2011-06-24)
  [3093] How many toilet rolls - hotel inventory and useage - (2010-12-18)
  [2971] Should the public sector compete with businesses? and other deep questions - (2010-09-26)
  [2825] Perl course - is it tailored to Linux, or Microsoft Windows? - (2010-06-25)
  [2783] The Perl Survey - (2010-05-27)
  [2736] Perl Course FAQ - (2010-04-23)
  [2504] Learning to program in ... - (2009-11-15)
  [2374] Lead characters on Perl variable names - (2009-08-24)
  [2242] So what is this thing called Perl that I keep harping on about? - (2009-06-15)
  [2228] Where do I start when writing a program? - (2009-06-11)
  [1897] Keeping on an even keel - (2008-11-21)
  [1750] Glorious (?) 12th August - what a Pe(a)rl! - (2008-08-12)
  [743] How to debug a Perl program - (2006-06-04)
  [400] New in the shops - (2005-08-01)
  [116] The next generation of programmer - (2004-11-13)

P212 - Perl - More on Character Strings
  [4452] Binary data handling - Python and Perl - (2015-03-09)
  [3927] First match or all matches? Perl Regular Expressions - (2012-11-19)
  [3707] Converting codons via Amino Acids to Proteins in Perl - (2012-04-25)
  [3650] Possessive Regular Expression Matching - Perl, Objective C and some other languages - (2012-03-12)
  [3630] Serialsing and unserialising data for storage and transfer in Perl - (2012-02-28)
  [3546] The difference between dot (a.k.a. full stop, period) and comma in Perl - (2011-12-09)
  [3411] Single and double quotes strings in Perl - what is the difference? - (2011-08-30)
  [3100] Looking ahead and behind in Regular Expressions - double matching - (2010-12-23)
  [3059] Object Orientation in an hour and other Perl Lectures - (2010-11-18)
  [2993] Arrays v Lists - what is the difference, why use one or the other - (2010-10-10)
  [2877] Further more advanced Perl examples - (2010-07-19)
  [2874] Unpacking a Perl string into a list - (2010-07-16)
  [2834] Teaching examples in Perl - third and final part - (2010-06-27)
  [2801] Binary data handling with unpack in Perl - (2010-06-10)
  [2657] Want to do a big batch edit? Nothing beats Perl! - (2010-03-01)
  [2379] Making variables persistant, pretending a database is a variable and other Perl tricks - (2009-08-27)
  [2230] Running a piece of code is like drinking a pint of beer - (2009-06-11)
  [1947] Perl substitute - the e modifier - (2008-12-16)
  [1735] Finding words and work boundaries (MySQL, Perl, PHP) - (2008-08-03)
  [1727] Equality and looks like tests - Perl - (2008-07-29)
  [1510] Handling Binary data (.gif file example) in Perl - (2008-01-17)
  [1336] Ignore case in Regular Expression - (2007-09-08)
  [1305] Regular expressions made easy - building from components - (2007-08-16)
  [1251] Substitute operator / modifiers in Perl - (2007-06-28)
  [1230] Commenting a Perl Regular Expression - (2007-06-12)
  [1222] Perl, the substitute operator s - (2007-06-08)
  [943] Matching within multiline strings, and ignoring case in regular expressions - (2006-11-25)
  [928] C++ and Perl - why did they do it THAT way? - (2006-11-16)
  [737] Coloured text in a terminal from Perl - (2006-05-29)
  [608] Don't expose your regular expressions - (2006-02-15)
  [597] Storing a regular expression in a perl variable - (2006-02-09)
  [586] Perl Regular Expressions - finding the position and length of the match - (2006-02-02)
  [583] Remember to process blank lines - (2006-01-31)
  [453] Commenting Perl regular expressions - (2005-09-30)


Back to
Travelling around
Previous and next
or
Horse's mouth home
Forward to
Is Melksham town centre dying?
Some other Articles
Finding your big files in Perl - design considerations beyond the course environment
The Olympic Torch, and Melksham House
Rabbit Shelter
Is Melksham town centre dying?
How much has Perl (and other languages) changed?
Travelling around
Reading the nth line from a file (Perl and Tcl examples)
Moving on - a task for the hotel staff!
Summer Sunday Trains - outings from Swindon, Chippenham, Melksham, Trowbridge and Westbury
Self Portrait (in words)
4759 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, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96 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).

You can Add a comment or ranking to this page

© WELL HOUSE CONSULTANTS LTD., 2019: 404 The Spa • Melksham, Wiltshire • United Kingdom • SN12 6QL
PH: 01225 708225 • EMAIL: info@wellho.net • WEB: http://www.wellho.net • SKYPE: wellho

PAGE: http://www.wellho.net/mouth/3322_How ... nged-.html • PAGE BUILT: Sat May 27 16:49:10 2017 • BUILD SYSTEM: WomanWithCat