> Can anyone confirm if I understand this right: > > if ( $username =~ /@/ ) > { > $_ = $username; > ($username) = /(.*)\@/; > } > > The part > ($username) = /(.*)\@/; > removes the @ symbol?
Yes, but what if you've got two @'s? ;-) The two lines in the 'if' can be rewritten as: $username =~ /(.*)\@/; The 'if' test is almost redundant, as we are sending the same data through both regexps. Unless finding '@' is an exceptional case then this will be slower than creating a "better regexp". Try these three: ($username) = split '@', $username; Easy to read, but slow since we split '[EMAIL PROTECTED]' into 'foo' and 'bar.com'... even though we discard the second one. ($username) =~ /^(.*?)\@?/; Needs testing, since it *might* be broken. I think (.*?) would match everything including any @. $username =~ s/\@.*//; If $username was several thousand characters long this would take my fancy. > Does it do anything else? Not AFAIK Jonathan Paton __________________________________________________ Do You Yahoo!? Everything you'll ever need on one web page from News and Sport to Email and Music Charts http://uk.my.yahoo.com -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]