# for the equation: 3x + 2y + 10z = 50 ($x,$y,$z,$ans) = (3,2,10,50); $xpat = 0 x $x; $ypat = 0 x $y; $zpat = 0 x $z; if ((0 x $ans) =~ /^ ((?:$xpat)+) ((?:$ypat)+) ((?:$zpat)+) $/x) { print "x = ", length($1)/$x, "\n"; print "y = ", length($2)/$y, "\n"; print "z = ", length($3)/$z, "\n"; }