I threw it away; but here's a rough recreation:

#! perl -slw use strict; use Data::Dump qw[ pp ]; our $i //= 'tutorial-data.txt'; our $debug //= 0; open my $in, '<', $i or die "failed to open '$i':$!"; my %users; my $userid; while( <$in> ) { chomp; warn "DEBUG: $_\n" if $debug; s[#.*$][] if /#/; next unless /\S/; my( $lead, $key, $val ) = m[^(\s+)?(\S+)\s*:\s*(.+?)\s*$] or die " +Invalid line format at line $."; $key = lc $key; if( defined $lead and length $lead ) { die "Missing userid at $." unless $userid; $val = [ split '\s*,\s*', $val ] if $key eq 'hobbies'; ## modi +fied to trim $users{ $userid }{ $key } = $val; } else { die "Missing userid at line $." unless $val; die "Userid '$val' not a positive integer at line $." unless $ +val =~ /^\d+$/; die "Userid '$val' not unique at line $." if exists $users{ $v +al }; $userid = $val; } } warn "DEBUG: Dumping user hash\n" and pp \%users if $debug;

And a debug run:

C:\test>p56tut -debug -i=tutorial-data.txt DEBUG: # file: tutorial-data.txt DEBUG: # a data file of users and their attributes DEBUG: # note all valid lines are in format "key: value..." DEBUG: user: 1234 # unique ID (an integer > zero) DEBUG: last: Brown DEBUG: first: Sam DEBUG: job: gunsmith DEBUG: # hobbies may be a comma-separated list DEBUG: hobbies: hunting, Perl Monging DEBUG: user: 2316 DEBUG: last: Doe DEBUG: first: Jane DEBUG: job: financial analyst DEBUG: hobbies: Python open source, bowling DEBUG: Dumping user hash { 1234 => { first => "Sam", hobbies => ["hunting", "Perl Monging"], job => "gunsmith", "last" => "Brown", }, 2316 => { first => "Jane", hobbies => ["Python open source", "bowling"], job => "financial analyst", "last" => "Doe", }, }

With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority". I knew I was on the right track :)
In the absence of evidence, opinion is indistinguishable from prejudice.
I'm with torvalds on this Agile (and TDD) debunked I told'em LLVM was the way to go. But did they listen!

In reply to Re^5: RFC: (DRAFT Tutorial) A Gentle Introduction to Perl 6 by BrowserUk
in thread RFC: (DRAFT Tutorial) A Gentle Introduction to Perl 6 by u65

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.