*I don’t know if C’s *`pow(3)` function has the same limitations under Unix?

Yes, I get `NaN` on Linux too, and pow(3) says "The functions `pow(x, y)`, `powf(x, y)`, and `powl(x, y)` raise an invalid exception and return an NaN if `x < 0` and `y` is not an integer." and similarly, on my system the manpage says "If `x` is a finite value less than 0, and `y` is a finite noninteger, a domain error occurs, and a `NaN` is returned." If you ask Wolfram Alpha, you have to explicitly tell it you want the real-valued root instead of the principal root, though I'm not enough of an expert to know whether that's relevant here (I did find out you can get all the ~~principal~~ roots via Math::Complex's `root`). Interestingly, Math::BigInt and Math::BigFloat's `->broot(3)` also return `NaN`, so throwing a `use bignum;` in the program unfortunately doesn't help in this case.

To get the cube root, you can apparently use cbrt(3), exposed via POSIX as of Perl v5.22:

`$ perl -wMstrict -MPOSIX=cbrt -le 'print cbrt(-8)'
-2
`

Comment onRe: How to get better exponentiation?SelectorDownloadCode