```{index} single: PDL::Bad; Perl module ``` # PDL::Bad ```{pperl-module-badges} PDL::Bad ``` ## Synopsis use PDL; my $a = pdl [1, 2, 3]; $a->badflag(1); $a->set(1, $a->badvalue); print $a->nbad, "\n"; # 1 print $a->ngood, "\n"; # 2 ## Functions ### Other Functions #### `setvaltobad` `setvaltobad($pdl, $val)` — set elements equal to `$val` as bad. Upstream `Bad.pd:625`. Same signature as setbadtoval: `pdl_run_setvaltobad(a, b, value)`. Engine restored 2026-04-19. Honours `PDL_INPLACE` so `$x->inplace->setvaltobad(1)` mutates `$x`. #### `setbadtoval` `setbadtoval($pdl, $val)` — replace bad values with `$val`. #### `badmask` `badmask($pdl, $replacement)` — replace bad values with `$replacement`. #### `setbadat` `setbadat($pdl, @indices)` — set element at given indices to the bad value and enable the badflag. #### `setinftobad` `setinftobad($pdl)` — set Inf/-Inf elements to bad value, enable badflag. Returns a new pdl (or modifies inplace if inplace flag set). #### `setnonfinitetobad` `setnonfinitetobad($pdl)` — set NaN and Inf/-Inf elements to bad value, enable badflag. Returns a new pdl (or modifies inplace if inplace flag set). Combines setnantobad and setinftobad behavior. #### `isfinite` `isfinite($pdl)` — returns a PDL of 1s for finite values, 0s for NaN/Inf/bad. Mirrors `PDL::Bad::isfinite`.