Domanda

Stavo solo sfogliando i perldocs quando ho incontrato questo in un esempio ( http://perldoc.perl.org/perlre.html#regolal-expressions - Vedi esempio di gruppi di cattura)

"aa" =~ /${a}/; # True
"aa" =~ /${b}/; # True
"aa0" =~ /${a}0/; # False!
"aa0" =~ /${b}0/; # True
"aa\x08" =~ /${a}0/; # True!
"aa\x08" =~ /${b}0/; # False
.

Non riesco a trovare alcuna documentazione su cosa significhi quella sintassi.

Allora, cosa fa il regex / $ {A} / significa in questo contesto?

È stato utile?

Soluzione

$ con parentesi Evitare l'ambiguità dei nomi delle variabili.Tale che:

$foo = 'house';
'housecat' =~ /$foo/;      # matches
'cathouse' =~ /cat$foo/;   # matches
'housecat' =~ /${foo}cat/; # matches
.

Anche nel link che hai dato, c'è una definizione per $ A e $ B, ma hai dimenticato di copiare qui.

Altri suggerimenti

Le parentesi graffe sono necessarie per disambiguare $a da $a0.Si noti che il tokenizer è avido, quindi un nome variabile è la sequenza più lunga possibile.Se in un'interpolazione variabile segue da un altro alfabetico o numero, è necessaria la sintassi ${name}.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top