Eventuali duplicati:
What does =~ do in Perl?Cosa significa = ~ significa in Perl
In un programma Perl sto esaminando (namly plutil.pl), vedo un sacco di =~
sul parser XML porzione. Ad esempio, qui è la funzione UnfixXMLString
(linee 159
a 167
su 1,7 ($VERSION
erroneamente dichiarati come "1.5"))
sub UnfixXMLString {
my ($s) = @_;
$s =~ s/</</g;
$s =~ s/>/>/g;
$s =~ s/&/&/g;
return $s;
}
Da quello che posso dire, il suo prototipo C sarebbe è (C-like) string UnfixXMLString(string s)
e utilizza l'operatore =~
sul parametro (s
) e quindi restituisce la stringa modificata, ma che cosa sta facendo?
In particolare, è utilizzato per associare un operatore 'm //', 's ///' o 'y ///' ('tr ///') a uno scalare. I regex non sono coinvolti per l'ultimo. Può anche essere usato come '$ var = ~ $ re', che è praticamente lo stesso di' $ var = ~/$ re/'. – tchrist