Brakuje porządnej powłoki z rozsądnymi i dobrze zdefiniowanymi regułami cytowania. W systemie Windows tylko podwójny cudzysłów jest uważany za cytat, a reguły ucieczki są słabo zdefiniowane i niespójne. Wypróbuj:
perl -e "print qq{Hello World \n}"
Zdecydowanie odradzam cokolwiek innego niż najprostsze jednolinijki w systemie Windows. (Kolejny problem z jednoosobowymi wersjami systemu Windows polega na tym, że powłoka systemu Windows nie rozwija symboli wieloznacznych. Jeśli użyjesz *.txt
w wierszu poleceń, będzie szukał pliku o nazwie dosłownie: *.txt
. Uruchomisz go później.)
w systemie Windows, co wpisane jest równoznaczne z:
perl -e "'print" "Hello World \n'"
Oznacza to, że kod Perl próbuje wykonać jest 'print
z @ARGV
zawierającym pojedynczy łańcuch Hello World \n'
. (To nie jest nowa linia, to jest ukośnik odwrotny, po którym następuje n
).
jeśli używasz Perl 5.10+, użyj' -E' opcja zamiast "-e", która włącza nowe funkcje, między innymi 'say', która jest' print', ale z domyślnym znakiem nowej linii na końcu. 'perl -E" say 'hello world' "' –
To doesn ' t pracy @Eric.Nie w tym przypadku.Ponieważ problem tutaj jest znaki cudzysłowu, które muszą być odwrócone. (Zastanawiam się, czy to działa dla Ciebie ...) – Apostolos