A character class describes which characters may appear at a position.

character class A character class like `[A-Za-z0-9_]` matches one allowed character from a set.

Character Classes

name
character_classes.pl
Replay: real traced execution (multi-file project)
use strict;
use warnings;

my $name = "user_42";
my $valid = $name =~ /^[A-Za-z0-9_]+$/;
my $status = $valid ? "valid" : "invalid";

print "name=$name\n";
print "status=$status\n";
use strict;
use warnings;

my $name = "bad-name";
my $valid = $name =~ /^[A-Za-z0-9_]+$/;
my $status = $valid ? "valid" : "invalid";

print "name=$name\n";
print "status=$status\n";
use strict;
use warnings;

my $name = "guest7";
my $valid = $name =~ /^[A-Za-z0-9_]+$/;
my $status = $valid ? "valid" : "invalid";

print "name=$name\n";
print "status=$status\n";
  1. $name ← user_42, $valid ← 1, $status ← valid

    4my $name→ user_42 = "user_42"; #@name="bad-name", "guest7"5my $valid→ 1 = $nameuser_42 =~ /^[A-Za-z0-9_]+$/;6my $status→ valid = $valid1 ? "valid" : "invalid";78print "name=$nameuser_42\n";9print "status=$statusvalid\n";
    outputname=user_42
    status=valid
  1. $name ← bad-name, $valid ← (empty), $status ← invalid

    4my $name→ bad-name = "bad-name";5my $valid→ (empty) = $namebad-name =~ /^[A-Za-z0-9_]+$/;6my $status→ invalid = $valid(empty) ? "valid" : "invalid";78print "name=$namebad-name\n";9print "status=$statusinvalid\n";
    outputname=bad-name
    status=invalid
  1. $name ← guest7, $valid ← 1, $status ← valid

    4my $name→ guest7 = "guest7";5my $valid→ 1 = $nameguest7 =~ /^[A-Za-z0-9_]+$/;6my $status→ valid = $valid1 ? "valid" : "invalid";78print "name=$nameguest7\n";9print "status=$statusvalid\n";
    outputname=guest7
    status=valid