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]