Perl `uc` функция oneliner -p / -n разность? - PullRequest
0 голосов
/ 10 января 2019

Работает как задумано:

perl -ne "print uc" /etc/passwd

Но это не так (просто печатает в оригинальном футляре ":

perl -pe uc /etc/passwd

Я не понимаю, что с ним не так.

спасибо.

1 Ответ

0 голосов
/ 10 января 2019

Вы делаете разные вещи. Поэтому неудивительно, что вы получаете разные результаты.

В первом примере вы берете значение $_, передаете его в uc и распечатываете результаты (это версия исходного текста в верхнем регистре).

Во втором примере вы берете значение $_, передаете его в uc и печатаете значение в $_. Но вы ничего не сделали для обновления $_, так что вы получите неизмененное значение. Исправление (как вы уже отметили в комментарии) заключается в обновлении $_ значением, которое возвращает uc.

perl -pe '$_ = uc' /etc/passwd
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...