Zamiana tekstu PERL

Witam,

Piszę sobie skrypcik w perlu i mam taki kawałek kodu:

$line = "NAME C:\TMP"; #tabulacja po NAME

$location = "C:\TMP";

$newLocation = "C:\NEW";

$line =~ s/$location/$newLocation/;

Nie chce to działać, zapewne dlatego, że jest w strigu taki znaczek “”. Próbowałem jakoś to obejść ale nie za bardzo wiem jak.

Bardzo proszę o pomoc

Polecam używać use strict i use warnings, problem sam by się wyjaśnił. Jak w bardzo wielu językach programowania znak \ służy do wpisywania znaków takich jak nowa linia czy tabulacja:http://en.wikipedia.org/wiki/Escape_character (a w Perlu również do innych rzeczy)

Możesz więc:

  • zmienić typ napisu na taki, który nie interpretuje specjalnie sekwencji takich jak \n czy \t

  • użyć ukośnika zamiast odwrotnego ukośnika

  • zapisać odwrotny ukośnik jako \

problem rozwiązany, trochę nie ładnie ale działa, zamieniam znaczki \ na ! i potem podmieniam

No nieładnie. Lepiej pozamieniaj “” na “\”, np.:

$line = "NAME C:\TMP"; #tabulacja po NAME

zamień na:

$line = "NAME C:\\TMP"; #tabulacja po NAME

chciałem to jakoś streścić i teraz jestg problem, bo ta zmienna czytana jest z pliku i nie mogę jej zmienić…

Rozwiń myśl, pokaż kod i przypadek, o który Ci chodzi. Zastępowanie \ znakami wykrzyknika to bardzo głupi pomysł, bo ! może być poprawnym znakiem nazwy pliku.