#!/usr/bin/perl -t -w use strict; sub dosplitMe () { my ($x,$separator,$justSplitMe) = @_; if ($justSplitMe) { if ($x =~ m /(.*)?$separator(.*)/) { return ($1,$2); } } else { # there might be stuff before first integer... if ($x =~ m/(\D+)?(\d+)$separator(\d+)/) { return ($1.$2 , $1.$3); } } } my $num1 = 123.456; my $num2 = -123.456; my $num3 = "abc123,123"; my @a; @a = &dosplitMe($num1,'\.',1); print ("1: $a[0] - $a[1] \n"); @a = &dosplitMe($num2,'\.',1); print ("2: $a[0] - $a[1] \n"); @a = &dosplitMe($num2,'\.',0); print ("3: $a[0] - $a[1] \n"); @a = &dosplitMe($num3,',', 1); print ("4: $a[0] - $a[1] \n"); @a = &dosplitMe($num3,',', 0); print ("5: $a[0] - $a[1] \n");