Dermot wrote:
> Hi All,
> 
> I have data in a tab delimited format like this (tabs might be lost in
> the formatting of the email).
> 
> A456/959        ScHe
> M920/1123      He
> D123/999        ChFl
> D123/949        AnFl
> S520/257      Sp
> T510/106       TePeHe
> T540/110       Te
> T875/1010     TeSc
> T875/1050     TeSc
> 
> 
> I need to split the 2nd column. The string is to be split into 2
> characters , so ChFl becomes 'Ch, Fl' . I can't seem to find a RE that
> will split the data correctly. My best effort is below but is captures
> everything into $f[0], there is no splitting at all. I also tried my
> hand at a recursive subroutine but that caused a lot deep recursion
> errors.
> 
> Can anyone offer a bit of advise here?
> Thanx,
> Dp.
> 
> 
> 
> 
> #!/bin/perl
> 
> use strict;
> use warnings;
> use Text::Tabfile;
> 
> my $file = 'myfile.txt';
> my $tabfile = new Text::TabFile;
> $tabfile->open($file);
> 
> my @headers = $tabfile->fields;
> 
> while (my $row = $tabfile->read) {
>       my $str = $row->{'code'};
>       my @f = split(/(?=\b[A-Z][a-z]\b)/, $str);
>       print qq($row->{'number'}, "$f[0]" "$str"\n");
> 
>       #print $row->{'number'},"\t";
>       #for (@f) {
>       #       print $_,',';
>       #}
>       #print "\n";
> }

I think you are better off using a simple global regex match Dermot.

    my @f =$str =~ /[A-Z][a-z]+/g;

That finds all instances of a capital letter followed by one or more lower case
letters.

HTH,

Rob

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/


Reply via email to