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";
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: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.