Steven Massey wrote:
> 
> Hi any help appreciated...

Hello,

> I am reading a file consisting of lines with upto 2 sets if data seperated
> by :   ie
> 
> 13:fred
> 12:nancy
> lional:
> 
> each line is split into @a1 and @a2, here is my problem  - if line does not
> have @a2 as in example line 3 above, I want it to take the value from line
> 2
> ie - 12
> here is my code that trys to do
> 
> =====================================================
> foreach $D (@FILES)
> 
> open(MYFILE2, "$TMP/$D") || die "Cannot open $D: $!\n";
> chomp (@source=<MYFILE2>);
> 
> @a1=(); @a2=();
> $srclen=@source;
> for ($a=0;$a<$srclen;$a++)
> 
>         ($a1[$a], $a2[$a])=split(/:/, $source[$a]);
>         if (grep (!/^[0-9]/, $a1[$a]))
> 
>               ####  help what needs to go here ????? #####
>         }
> }
> close(MYFILE2);
> }


Here is one way to do it:


local @ARGV = map "$TMP/$_", @FILES;

my $number;
while ( <> ) {
    chomp;
    if ( /^(\d+):(.+)$/ ) {
        print "Name: $2\nNumber: $1\n";
        $number = $1;
        }
    elsif ( /([^:]+)/ and defined $number ) {
        print "Name: $1\nNumber: $number\n";
        }
    elsif ( eof ) {
        $number = undef;
        }
    else {
        print "Error: no data found!\n";
        }
    }

__END__


John
-- 
use Perl;
program
fulfillment

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to