Can anyone think of a cleaner way to do this:
        push(@Joiner, $ReadData[3]);
        push(@Joiner, $PlayerData{'PlayerHeld'});
        push(@Joiner, $PlayerData{'PlayerCarried'});
        push(@Joiner, $PlayerData{'PlayerEquipped'});
        push(@Joiner, $PlayerData{'PlayerWielded'});

        $PlaceHolder= join(":", @Joiner);

        @CurrentObjects= split(/:/, $PlaceHolder);

#       &MainFrames_Page;

        $tempdisplay= join(", ", @CurrentObjects);

See what I am doing is getting objects from all the area then I will check
against what the user types in.  Thats why I am using an array not a hash.
If the user has the object thay can do the action if not I need to pop up a
dialog box saying no object, while on that topic anyone know the dialogbox
syntax in perl or does it work differently?

Regards,
Andre` C.
Technical Support
ԿԬ
----------------------------------------------------------------------------
-
Visit our support manual at http://supportmanual.com/
----- Original Message -----
From: "Curtis Poe" <[EMAIL PROTECTED]>
To: "Andre` Niel Cameron" <[EMAIL PROTECTED]>; <[EMAIL PROTECTED]>
Cc: <[EMAIL PROTECTED]>
Sent: Friday, November 30, 2001 3:40 PM
Subject: Re: Program dilema


> --- Andre` Niel Cameron <[EMAIL PROTECTED]> wrote:
> > Hi,
> >
> > I am having a bit of a problem.  Does anyone have any idea how I could
have
> > a variable and see if the value of that variable is also located in an
array
> > and hash?  IE:
> >
> > $myvar= 6
> >
> > @myarray= ("4", "7", 10", 6")
> >
> > if (6 exists in @myarray) (
> > dothis}
> > else{
> > dothis}
> >
> > andre
> > Regards,
> > Andre` C.
> > Technical Support
> > ԿԬ
>
> The previous answers about putting setting the array as hash keys work out
nicely.  One quick way
> of setting the hash keys is to use a hash slice:
>
>     my @array = qw/ 1 2 5 hello Ovid /;
>     my %data;
>     @data{ @array } = undef;
>
> Now, %data has the keys set to the array values (with all hash values set
to undef).  I suspect
> that this is faster than the for loop, but I haven't benchmarked it.
>
> One limitation of this technique is that you are pretty much forced to
have an exact match.  One
> thing you can do is use grep with a regular expression *in scalar
context*.   This can allow
> complex matching of data in the array and quickly tell you how many
elements matched!
>
>     my @array = qw/ 1 2 5 hello Ovid /;
>     my $count = grep /ovid/i, @array;
>     print "$count element(s) matched";
>
> You can read "perldoc -f grep" for details.  In the meantime, in the
example above, grep takes and
> expression and an array as arguments.  Each element of the array is set to
$_, in turn, and this
> value will be returned by grep if the expression evaluates as true.
>
>     my $count = grep /ovid/i, @array;
>
>     # is the same as
>     my $count = grep $_ =~ /ovid/i, @array;
>
>     # is the same as
>     my @new_array;
>     foreach ( @array ) {
>         push @new_array, $_ if /ovid/i;
>     }
>     my $count = @new_array;
>
> Since grep is used in scalar context, in this example, $count is set to
the number of items that
> grep returns.  If you use an array on the left, the array will be
populated with only those items
> that grep returns.
>
>     my @matches = grep /ovid/i, @array;
>
> Hope this helps.
>
> Cheers,
> Curtis "Ovid" Poe
>
> =====
> Senior Programmer
> Onsite! Technology (http://www.onsitetech.com/)
> "Ovid" on http://www.perlmonks.org/
>
> __________________________________________________
> Do You Yahoo!?
> Yahoo! GeoCities - quick and easy web site hosting, just $8.95/month.
> http://geocities.yahoo.com/ps/info1
>
> --
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>


-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to