--- Jenda Krynicky < Jenda%40Krynicky.cz">Jenda
Krynicky.cz> wrote:
> From: Donald Korrecta < draktrax%40yahoo.com">draktrax
yahoo.com>
> > The entire prog:
> > foreach $b ("spades", "hearts", "clubs",
> "diamonds") {
> > foreach $a ("ace", 2..10, "jack", "queen",
> "king") {
> > $c=0;
> > $deck[&c]= "$a of $b";
>
> I believe you meant
> $deck[$c]= "$a of $b";
>
> your code would attempt to call the c() subroutine
> and thus should
> return an error that there is no such function.
>
> > $c++;
> > }
> > }
> > foreach $i (1..10) }
> > $card=$deck[rand
deck];
> > print "Card $i is the $card;
> > }
> >
> > if i print out the result of the nested loops
> > i get a list of all cards. the prog returns only
> the
> > king of diamonds. what am i missing?
>
> The first thing you are missing is
>
> use strict;
> use warnings;
> # and possibly
> # no warnings 'uninitialized'; # I find this
> particular warning
> annoying.
>
> then you are missing the variable declarations.
>
> foreach my $b ("spades", "hearts", "clubs",
> "diamonds") {
> foreach my $a ("ace", 2..10, "jack", "queen",
> "king") {
> my $c=0;
> $deck[$c]= "$a of $b";
> $c++;
> }
> }
> foreach my $i (1..10) }
> my $card=$deck[rand
deck];
> print "Card $i is the $cardn";
> }
>
> this might help you to see the problem, you reset
> the $c counter in
> each iteration of the inner foreach loop, thus you
> only ever set
> $deck[0]. Which you could easiy find out by printing
> the
deck to
> make sure it's initialized correctly:
>
> use Data:
umper;
> print Dumper(
deck);
>
>
> Next thing, you should not use variables $a and $b
> outside sort{}.
> They are a bit special. Besides $a and $b is not
> very informative, is
> it? What does "a" mean? Nothing! Use meaningful
> variable names!
>
> Also, if you want to add a value at the end of an
> array you do not
> need to keep a counter, just push() the value into
> the
array:
>
>
> use strict;
> use warnings;
> no warnings 'uninitialized';
>
> my
deck;
> foreach my $color ("spades", "hearts", "clubs",
> "diamonds") {
> foreach my $value ("ace", 2..10, "jack", "queen",
> "king") {
> push
deck, "$value of $color";
> }
> }
> # use Data:
umper;
> # print Dumper(
deck);
>
> foreach my $i (1..10) }
> my $card=$deck[rand
deck];
> print "Card $i is the $cardn";
> }
>
>
> HTH, Jenda
> ===== Jenda%40Krynicky.cz">Jenda
Krynicky.cz === http://Jenda.Krynicky.cz
> =====
> When it comes to wine, women and song, wizards are
> allowed
> to get drunk and croon as much as they like.
> -- Terry Pratchett in Sourcery
>
>
in the actual script the variables are called "suit"
and "rank". Some of your response,though, is a little
past where I am. I do thank you for your lesson and
will keep your correspondence for future reference.
a most grateful newbie,
draktrax
__________________________________________________________
Be a better friend, newshound, and
know-it-all with Yahoo! Mobile. Try it now. http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ
.