piccolo esempio:Quante sostituzioni sono avvenute in un Perl s /// g?
perl -e '$s="aaabbcc";$c=()=$s=~/a/g;print"$c\n$s\n"'
(m // g) Uscite
3
aaabbcc
mentre perl -e '$s="aaabbcc";$c=()=$s=~s/a/x/g;print"$c\n$s\n"'
(s /// g) uscite
1
xxxbbcc
Mi piacerebbe fare entrambe le cose una volta senza doversi confrontare prima: sostituire e conoscere il numero di sostituzioni. Ovviamente un s/g non restituisce il numero di sostituzioni nel contesto scalare, diversamente da m // g con le corrispondenze. È possibile? Se sì, come?
perlre, perlvar e perlop non hanno fornito alcun aiuto (o semplicemente non sono riuscito a trovarlo).
In realtà, non ha valutato l'elenco in un contesto scalare. Questo è impossibile. Ha valutato il ** elenco di incarichi ** in contesto scalare. – daotoad
@daotoad: Grazie, sapevo che non era giusto, ma la terminologia mi sfuggì per un momento. Tangente: perché non più persone usano la loro capacità di modifica per correggere solo dettagli del genere? –
Non riesco a riflettere sulle motivazioni degli altri, ma non modifico ciò che le altre persone scrivono in un modo che cambia l'intento o il significato. Per esempio, ci sono alcune persone che sono appassionate della loro fede nell'esistenza di "liste in contesto scalare" in Perl, se tu fossi una di queste persone, sarebbe molto offensivo per me mettere delle parole in bocca che rinnegano la tua (errato e putativo) convinzione. Ci sono anche casi in cui ** la mia ** comprensione è errata e cambiare il post potrebbe renderlo sbagliato. Per questi motivi, preferisco segnalare gli errori piuttosto che "sistemarli". YMMV – daotoad