On Sun, Jun 20, 2010 at 20:49, C.DeRykus <dery...@gmail.com> wrote: > On Jun 19, 5:07 pm, stu21...@lycos.com wrote: >> I have some text that specifies inherited runners in baseball: >> >> 'Hughes, D 2-0, O'Flaherty 2-0, Moylan 1-1' >> >> I want to split on the comma and associate the numbers with that player. The >> problem is that sometimes the player's first initial is used sometimes not. >> Is there a clever way to consider the comma part of the name when an initial >> is used and a delimiter otherwise? Thanx > > Another possible option maybe: > > my %runners = split / ([0-9]+-[0-9]+) /x, $s; snip
That is nice, but you can improve it by adding a non-captured group containing a comma and a whitespace character or the end of the string. #!/usr/bin/perl use strict; use warnings; use Data::Dumper; $Data::Dumper::Useqq = $Data::Dumper::Terse = $Data::Dumper::Indent = 1; my $s = "Hughes, D 2-0, O'Flaherty 2-0, Moylan 1-1"; my %runners = split / ( [0-9]+ - [0-9]+ ) (?: , \s | $) /x, $s; print Dumper \%runners; -- Chas. Owens wonkden.net The most important skill a programmer can have is the ability to read. -- To unsubscribe, e-mail: beginners-unsubscr...@perl.org For additional commands, e-mail: beginners-h...@perl.org http://learn.perl.org/