Как правильно разбить строку кода Perl на две части? - PullRequest
27 голосов
/ 21 октября 2010
$ cat temp.pl
use strict;
use warnings;

print "1\n";
print "hello, world\n";

print "2\n";
print "hello,
world\n";

print "3\n";
print "hello, \
world\n";

$ perl temp.pl
1
hello, world
2
hello,
world
3
hello, 
world
$

Чтобы сделать мой код легко читаемым, я хочу ограничить количество столбцов до 80 символов.Как я могу разбить строку кода на две без каких-либо побочных эффектов?

Как показано выше, простой или \ не работает.1009 * Как правильно это сделать?

Ответы [ 4 ]

43 голосов
/ 21 октября 2010

В Perl возврат каретки будет выполняться в любом месте, где есть обычные пробелы.Обратная косая черта не используется, как в некоторых языках;просто добавьте CR .

Вы можете разбить строки на несколько строк с помощью операций конкатенации или списка:

print "this is ",
    "one line when printed, ",
    "because print takes multiple ",
    "arguments and prints them all!\n";
print "however, you can also " .
    "concatenate strings together " .
    "and print them all as one string.\n";

print <<DOC;
But if you have a lot of text to print,
you can use a "here document" and create
a literal string that runs until the
delimiter that was declared with <<.
DOC
print "..and now we're back to regular code.\n";

Здесь вы можете прочитать о документах в perldoc perlop .

11 голосов
/ 21 октября 2010

Еще одна вещь из Perl Best Practices :

Прерывание длинных строк: Разрыв длинных выражений перед оператором. как

push @steps, $step[-1]
                  + $radial_velocity * $elapsed_time
                  + $orbital_velocity * ($phrase + $phrase_shift)
                  - $test
                  ; #like that
5 голосов
/ 21 октября 2010

Это потому, что вы внутри строки. Вы можете разделить строки и объединить, используя . как:

print "3\n";
print "hello, ".
"world\n";
1 голос
/ 21 октября 2010

Используйте ., оператор конкатенации строк:

$ perl
print "hello, " .
"world\n";<kbd>ctrl-d</kbd>
hello, world
$
...