Привет,
Подскажите по какой причине результат зависит от того,
в какой последовательности расположены параметры?
gnugmanov@jekyll@~/morespace>echo test | perl -enal 'print "hi\n";'
gnugmanov@jekyll@~/morespace>echo test | perl -lane 'print "hi\n";'
hi
gnugmanov@jekyll@~/morespace>
perl one liner parameter sequence
Правила форума
Пожалуйста, ознакомьтесь с правилами данного форума
Пожалуйста, ознакомьтесь с правилами данного форума
- Gaziz
- Житель
- Сообщения: 944
- Зарегистрирован: 17 фев 2003, 15:57
- Откуда: Almaty-Toronto-Vancouver-Seattle
- sobomax
- Маньяк
- Сообщения: 3699
- Зарегистрирован: 29 июн 2006, 22:53
- Откуда: Vancouver
Re: perl one liner parameter sequence
$ man perlrunGaziz писал(а):Привет,
Подскажите по какой причине результат зависит от того,
в какой последовательности расположены параметры?
gnugmanov@jekyll@~/morespace>echo test | perl -enal 'print "hi\n";'
gnugmanov@jekyll@~/morespace>echo test | perl -lane 'print "hi\n";'
hi
gnugmanov@jekyll@~/morespace>
[...]
-e commandline
may be used to enter one line of program. If -e is given, Perl
will not look for a filename in the argument list. Multiple -e
commands may be given to build up a multi-line script. Make sure
to use semicolons where you would in a normal program.
[...]
Это означает что в первом случае ты пытаешся исполнить скрипт состоящий из одной строки "nal". Странно что оно тебя не послало куда нибудь подальше.

-Maxim
-
- Пользователь
- Сообщения: 194
- Зарегистрирован: 19 май 2006, 21:03
- Откуда: + 1 604
- Gaziz
- Житель
- Сообщения: 944
- Зарегистрирован: 17 фев 2003, 15:57
- Откуда: Almaty-Toronto-Vancouver-Seattle
Re: perl one liner parameter sequence
Спасибо, понятно. Но не разумноsobomax писал(а):$ man perlrunGaziz писал(а):Привет,
Подскажите по какой причине результат зависит от того,
в какой последовательности расположены параметры?
gnugmanov@jekyll@~/morespace>echo test | perl -enal 'print "hi\n";'
gnugmanov@jekyll@~/morespace>echo test | perl -lane 'print "hi\n";'
hi
gnugmanov@jekyll@~/morespace>
[...]
-e commandline
may be used to enter one line of program. If -e is given, Perl
will not look for a filename in the argument list. Multiple -e
commands may be given to build up a multi-line script. Make sure
to use semicolons where you would in a normal program.
[...]
Это означает что в первом случае ты пытаешся исполнить скрипт состоящий из одной строки "nal". Странно что оно тебя не послало куда нибудь подальше.
-Maxim

- sobomax
- Маньяк
- Сообщения: 3699
- Зарегистрирован: 29 июн 2006, 22:53
- Откуда: Vancouver
Re: perl one liner parameter sequence
Huh? По определению есть два типа параметров - параметр с аргументом и параметр без. -e это параметр с аргументом. Все что следует за параметром с аргументом до следующего пробела считается аргументом этого параметра, например:Gaziz писал(а): Спасибо, понятно. Но не разумноДанные на выходе IMHO не должны зависить от перемены места параметров.
-a foobar
-afoobar
-a "foo bar"
Учите матчасть в общем.

-Maxim