#!/usr/bin/perl
$num=14.45905495;
@post=$1 if ($num=~/(\d+\.\d\d)\d+/);
print "$post[0]\n";
output
14.45
explanation
--
\d+ = at least one digit or more
\. = followed by a period.
\d\d = two digits
\d+ = followed by any number of digits
(\d+\.\d\d)
Sets the portion in parens to be memo
> I have a variable:
> $NUM = '14.45905495';
> and I want to remove the trailing digits and only leave 2
> after the period
> so it ends up
>
> '14.45'
>
> I've tried to do this but it appears to return as an array
> and always prints
> out "1".
>
> #!perl -w
>
> $NUM = '14.45905495';
> @POS
You may want to do this with sprintf rather than a regex, check out:
perldoc -f sprintf
I believe because your regex isn't grouping any terms it is returning a status of true
or false, aka 1 for true since your regex does in fact match. You might try paren's
around the whole thing if you still