My background isn't programming, so to most Monks this snippet is likely incredibly rudimentary. Nonetheless, after ~2 years dabbling with Perl (mostly regex logfile analysis and non-DB, HTML-generating-CGI), I was recently forced to actually learn how to implement arrays and hashes in a script. Here's how I got my brain to begin grasping them:
 
p.s. I think the Debian stable version of Perl (5.00404) is keeping me from doing insertion order retrieval.

Update: added Tie::IxHash for insertion-order retrieval Jan 3, 2001

#!/usr/bin/perl -w # notclever.pl # Rudimentary examples of array, hash, tied hash # Updated using Komodo beta 1.0.0 build 12686 on Win2k # Tested: Perl 5.00503 on Debian # ActivePerl 5.006 on Win2k use strict; use Tie::IxHash; print "\nPASSEL O' PRINTS"; print "\n 1 script : $0"; print "\n 2 executable : $^X $]"; print "\n 3 host OS : $^O"; print "\n 4 start time : $^T"; print "\n"; print "\nARRAY+FOREACH"; my @varlist = ( "\n 1 script : $0", "\n 2 executable : $^X $]", "\n 3 host OS : $^O", "\n 4 start time : $^T", ); foreach (@varlist) { print; } print "\n"; print "\nHASH+WHILE"; my %varhash = ( ' 1 script' => "$0" , ' 2 executable' => "$^X $]" , ' 3 hostOS' => "$^O" , ' 4 starttime' => "$^T" , ); while((my $key, my $value) = each(%varhash)) { print "\n", $key, " is ", $value; } print "\n"; print "\nTIED HASH+FOR"; tie my %tiedhash, "Tie::IxHash"; %tiedhash = ( ' script' => "$0" , ' executable' => "$^X $]" , ' hostOS' => "$^O" , ' starttime' => "$^T" , ); for my $key (keys %tiedhash) { print "\n", $key, " is ", $tiedhash{$key}; } print "\n";

In reply to (code) neither clever nor useful array vs. hash example by ybiC

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.