consideri un file di testo con il contenuto:Perl può sostituire più parole chiave con la propria parola sostitutiva in un colpo solo?
apple apple pear plum apple cherry pear apple
cherry plum plum pear apple cherry pear pear apple plum
e considerare la perl one-liner:
perl -pe "s/apple/green/g and s/pear/yellow/g and s/plum/blue/g and s/cherry/red/g" < fruits.txt
Questo sostituisce ogni frutto con il suo colore.
Ora, questo potrebbe essere fatto in un singolo s /// g in qualche modo, invece dei quattro precedenti?
Sono anche preoccupato per l'ordine delle parole di frutta.
Se il mio campione non include "mela", nessuna delle altre sostituzioni verrà completata. Come dovrei risolvere quello?
Nota: desidero mantenere la soluzione come one-liner.
Quindi definire hash, leggere file e altre soluzioni che richiedono molte righe di codice perl non mi porta avanti.
È più una curiosità piuttosto che una questione di vita o di morte su cui un progetto dipenderebbe. Mi disturba solo da qualche giorno e ho pensato che un utente perl più esperto là fuori potesse aiutarti con la soluzione in un batter d'occhio, o mi avrebbe tolto dalla mia tristezza dicendomi chiaramente che questo non può essere fatto in perl nel modo che voglio.
penso l'originale è più leggibile, ma si noti che il comportamento è diverso rispetto alle soluzioni proposte, se uno dei motivi o stringhe sono sottostringhe di altri modelli o stringhe (sostituzioni sequenziali vs un singolo passaggio) –