Next | Program Repair Shop | 67 |
Here's an extremely common special case of this problem:
Subject: Re: string tokenization Message-Id: <20010627.084604.1001243552.6624@dhthomaslnx.mcafee.com>
> I am working on an autometic emailing program...intended to be > written in perl I have a file of rows of email addresses and > names separated by a space and each entry by a linefeed > > emailadd FirstName LastName > emailadd2 FN2 LN2
... if ($line =~ /(\w+)\s(\w+)\s(\w+)/) { my $email = $1; my $first = $2; my $last = $3; ...
This is The swswsw Problem
When you see a lot of \s alternating with \w+ or \d* or .+ or \S*, consider using split instead:
my ($email, $first, $last) = split /\s/, $line; next unless defined $last;
Next | Copyright © 2006 M. J. Dominus |