Beefy Boxes and Bandwidth Generously Provided by pair Networks
go ahead... be a heretic
 
PerlMonks  

Re: Matching the first letter in a string

by myocom (Deacon)
on Jul 31, 2001 at 02:49 UTC ( #101008=note: print w/ replies, xml ) Need Help??


in reply to Matching the first letter in a string

If you're going to match a fixed number of letters in a fixed position (e.g., the first letter), use substr instead:

if (substr($title,0,1) eq $layer) { # do something... }

If you want the items checked regardless of case (that is, 'a' is treated the same as 'A'), force it to be lowercase:

if (lc(substr($title,0,1) eq lc($layer)) { # do something... }

As a side note, you're doing some extraneous quoting in there too, on the assignment to $title. I'd suggest changing that line to:

my $title = $dbrow{Title};


Comment on Re: Matching the first letter in a string
Select or Download Code
Re: Re: Matching the first letter in a string
by tomhukins (Curate) on Jan 07, 2002 at 21:48 UTC

    The original question concerned the first letter of $title, whereas your answer compares the first character.

    To match the first letter case insensitively, try:

    my $title="$dbrow{'Title'}"; $title =~ m/([a-z])/i; # Match the first letter in $title if (lc($1) eq lc($layer)) { #do something... }
    NB. I'm using [a-z] rather than \w because \w includes the underscore character, which isn't a letter.

    Given that you seem to be working with results returned from a database, it's almost certainly better to check the first letter matches in the SQL query, rather than in the Perl code later on. Try something like SELECT * FROM table WHERE field LIKE "A%" to match records where field starts with the letter A.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://101008]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others contemplating the Monastery: (8)
As of 2015-07-04 09:11 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (58 votes), past polls