By default the package exports functions PARI(), PARIcol(), PARIvar(), PARImat() and PARImat_tr() which convert their argument(s) to a PARI object. (In fact PARI() is just an alias for new Math::Pari). The function PARI() accepts following data as its arguments One integer Is converted to a PARI integer. One float Is converted to a PARI float. One string Is executed as a PARI expresion (so should not contain whitespace). PARI object Is passed unchanged. Reference to a Perl array Each element is converted using the same rules, PARI vector-row with these elements is returned. ... Conflicts of rules in PARI() In deciding what rule of the above to apply the preference is given to the uppermost choice of those available now. If none matches, then the string rule is used. So PARI(1) returns integer, PARI(1.) returns float, PARI("1") evaluates 1 as a PARI expression (well, the result is the same as PARI(1), only slower).