The biggest potential source of confusion in this problem is that there are actually two loops being asked for - one where the user enters each field of the order line and one where he enters successive order lines.

Update: Warning! Spoiler (code) follows:

use Data::Dumper; my @order = (); my %dialogue = ( PN => 'Product Name', PR => 'Price', QU => 'Quantity', YN => 'Enter another order line (Y/N)' ); my @kd = sort keys %dialogue; # they happen to be in right order # else could prefix hash keys with digit +s my $response; do { # this loop style is 'do once then conditionally repeat' my %hash = (); foreach my $kd ( @kd ) { # n.b. nested loop print $dialogue{ $kd } . ": "; $response = <>; chop $response; $hash{ $kd } = $response; } delete $hash{ YN }; # remove last response (the Y/N) from hash push @order, \%hash; } while ( uc( $response ) eq 'Y' ); print Dumper( \@order );

-M

Free your mind


In reply to Re: seeking advice on loops by Moron
in thread seeking advice on loops by sierrastar

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.