If you insist on using a sub here, then how about passing $found to it,
rather than relying on a $found variable that must be globally
accessible.
Come on, we should have some standards here, guys :)
-Judd
On Fri, 2008-01-04 at 17:09 +0100, Jarle Brinchmann wrote:
> If you want something that perhaps is more readable but probably less
> efficient & certainly less general than Derek's solution this one might
> work:
>
> use PDL::NiceSlice;
> sub setme_jb {
> my ($x, $y, $value) = @_;
>
> # Error checking non-existent.
>
> # Find those positions that are != 0
> my $ii = which($found->index2d($x, $y) != 0);
> if ($ii->nelem() == 0) {
> return;
> }
>
> # Set the relevant parts.
> $found->index2d($x($ii), $y($ii)) .= $value;
>
> }
>
> This is really written as a 2D version and doesn't generalise very
> well, but I thought you might find it useful as an alternative approach
> (extending this using whichND and indexND is a non-trivial task btw as
> it seems like whichND is a bit broken...)
>
> Cheers,
> J.
>
> On 3 Jan 2008, at 23:30, [EMAIL PROTECTED] wrote:
>
> > Quoting Derek Lamb <[EMAIL PROTECTED]>:
> >
> >> And since indexND is implemented as a call to range, this might work
> >> for
> >> you.
> >
> > It does! Thanks. My real data has sped up from about 500 loops per
> > hour to
> > 8000 in 4 minutes. Obviously a massive improvement.
> >
> >> It may or may not be easier for you to read at the moment!
> >
> > Right now, it's totally incomprehensible. But I'm no longer kicking a
> > dead
> > Lamborghini down the highway, and learning from code which works is
> > always
> > easier than trying to code something you don't understand.
> >
> > _______________________________________________
> > Perldl mailing list
> > [email protected]
> > http://mailman.jach.hawaii.edu/mailman/listinfo/perldl
>
>
> _______________________________________________
> Perldl mailing list
> [email protected]
> http://mailman.jach.hawaii.edu/mailman/listinfo/perldl
>
--
____________________________
Judd Taylor
Software Engineer
Orbital Systems, Ltd.
3807 Carbon Rd.
Irving, TX 75038-3415
[EMAIL PROTECTED]
(972) 915-3669 x127
_______________________________________________
Perldl mailing list
[email protected]
http://mailman.jach.hawaii.edu/mailman/listinfo/perldl