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

Reply via email to