if (...) {
if (...) {
if (...) {
if (...) {
....
} else {
return 0;
}
} else {
return 0;
}
} else {
return 0;
}
} else {
return 0;
}
####
($msg =~ /^([^\s]+)/) or return 0;
$alias = $1;
($msg =~ /-address="([^"]+)"/) or return 0;
$address = $1;
($msg =~ /-port="([^"]+)"/) or return 0;
$port = $1;
($msg =~ /-nick="([^"]+)"/) or return 0;
$nick = $1;
($msg =~ /-password="([^"]+)"/) or return 0;
$password = $1;
($msg =~ /-prefix="([^"]+)"/) or return 0;
$prefix = $1;
($msg =~ /-auto_connect="([^"]+)"/) or return 0;
$auto_connect = $1;
##
##
# Regular expressions to apply
my $a_regexes = [
qr/^([^\s]+)/,
qr/-address="([^"]+)"/,
qr/-port="([^"]+)"/,
qr/-nick="([^"]+)"/,
qr/-password="([^"]+)"/,
qr/-prefix="([^"]+)"/,
qr/-auto_connect="([^"]+)"/,
];
# Construct an array of resulting regex captures
my @results = ( );
# Save each pattern (returning if missing from regex)
foreach my $regex (@$a_regexes) {
if ($msg !~ /$regex/) {
return 0;
}
push @results, $1;
}
# Assign to the desired variables
my ($alias, $address, $port, $nick,
$password, $prefix, $auto_connect) = @results;
##
##
# Define the tokens we wish to extract
my @tokens = qw( address port nick password prefix auto_connect );
# First token is a special case
my $alias = ($msg =~ /^(\S+)\s*/)? $1: "";
$alias or return 0;
# Construct an array of resulting regex captures
my @results = ( );
# Construct the regex from each token, and capture the value
foreach my $token (@tokens) {
($msg =~ /-${token}="([^"]+)"/ or return 0;
push @results, $1;
}
# Assign to the desired variables
my ($address, $port, $nick, $password, $prefix, $auto_connect) = @results;