--- Begin Message ---
Hi Martin

This changes the names, but bring horrible results:

             shift(@startingdeck),
              pop(@startingdeck),
              shift(@startingdeck),
              pop(@startingdeck),
              shift(@startingdeck),
              pop(@startingdeck)
      );

      push @startingdeck, @shuffle;

foreach (@startingdeck) {
      s/A/Ace/;
      s/K/King/;
      s/C/Club/;
      s/H/Heart/;
      s/D/Diamond/;
      s/J/Jack/;
      s/Q/Queen/;
      s/S/Spade/;
      s/J/Joker/;

} # your @startingdeck will be modified.


print "@startingdeck[0 .. 4]\n";

}

Why is it printing all this mess? I just want 5 top cards.

On 7/9/07, Martin Barth <[EMAIL PROTECTED]> wrote:

Amichai Teumim schrieb:
> Hi
>
> In my deck of cards I want to replace the letter of the card with the
name(
> e.g. A = Ace).
>
> So I tried to implement the following snippet into my code:
>
> while @startingdeck{
>  $_ =~ s/A/Ace/;
>  print NEW;
> }
>
> The code is as follows (including snippet):
>
> #!/usr/bin/perl
>
> use strict;
> use warnings;
>
>
> my @startingdeck = ("A H","2 H","3 H","4 H","5 H","6 H","7 H","8 H",
>                "9 H","10 H","J H","Q H","K H",
>                "A D","2 D","3 D","4 D","5 D","6 D","7 D","8 D",
>                "9 D","10 D","J D","Q D","K D",
>                "A C","2 C","3 C","4 C","5 C","6 C","7 C","8 C",
>                "9 C","10 C","J C","Q C","K C",
>                "A S","2 S","3 S","4 S","5 S","6 S","7 S","8 S",
>                "9 S","10 S","J S","Q S","K S");
>
> for my $x (0 .. 99) {
>       my @shuffle = (
>               shift(@startingdeck),
>               pop(@startingdeck),
>               shift(@startingdeck),
>               pop(@startingdeck),
>               shift(@startingdeck),
>               pop(@startingdeck),
>               shift(@startingdeck),
>               pop(@startingdeck)
>       );
>
>       push @startingdeck, @shuffle;
>
> while @startingdeck{
>  $_ =~ s/A/Ace/;
>  print NEW;
> }
> }
> print "@startingdeck[0 .. 4]\n";
>

your while statement is in the foreach statement. you should better do do
the replacement of the names before or after the shuffle.

I don't understand what you wanted to do with "print NEW;". probably you
don't understand it, too?

NEW is a unopend Handle.

what about:

foreach (@startingdeck) {
        s/A/Ace/;
        s/K/King/;
        ...etc...
} # your @startingdeck will be modified.

HTH




--- End Message ---
-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/

Reply via email to