Страница 1 из 1
perl one liner parameter sequence
Добавлено: 25 авг 2006, 07:07
Gaziz
Привет,
Подскажите по какой причине результат зависит от того,
в какой последовательности расположены параметры?
gnugmanov@jekyll@~/morespace>echo test | perl -enal 'print "hi\n";'
gnugmanov@jekyll@~/morespace>echo test | perl -lane 'print "hi\n";'
hi
gnugmanov@jekyll@~/morespace>
Re: perl one liner parameter sequence
Добавлено: 25 авг 2006, 09:42
sobomax
Gaziz писал(а):Привет,
Подскажите по какой причине результат зависит от того,
в какой последовательности расположены параметры?
gnugmanov@jekyll@~/morespace>echo test | perl -enal 'print "hi\n";'
gnugmanov@jekyll@~/morespace>echo test | perl -lane 'print "hi\n";'
hi
gnugmanov@jekyll@~/morespace>
$ man perlrun
[...]
-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
Добавлено: 25 авг 2006, 20:53
bormo
так и есть.
[root@srv3058 root]# echo test | perl -e'print "hi\n"';
hi
Re: perl one liner parameter sequence
Добавлено: 28 авг 2006, 09:26
Gaziz
sobomax писал(а):Gaziz писал(а):Привет,
Подскажите по какой причине результат зависит от того,
в какой последовательности расположены параметры?
gnugmanov@jekyll@~/morespace>echo test | perl -enal 'print "hi\n";'
gnugmanov@jekyll@~/morespace>echo test | perl -lane 'print "hi\n";'
hi
gnugmanov@jekyll@~/morespace>
$ man perlrun
[...]
-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
Спасибо, понятно. Но не разумно

Данные на выходе IMHO не должны зависить от перемены места параметров.
Re: perl one liner parameter sequence
Добавлено: 28 авг 2006, 09:54
sobomax
Gaziz писал(а):
Спасибо, понятно. Но не разумно

Данные на выходе IMHO не должны зависить от перемены места параметров.
Huh? По определению есть два типа параметров - параметр с аргументом и параметр без. -e это параметр с аргументом. Все что следует за параметром с аргументом до следующего пробела считается аргументом этого параметра, например:
-a foobar
-afoobar
-a "foo bar"
Учите матчасть в общем.
-Maxim