开发者

What is the correct way to break a line of Perl code into two?

$ 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
$

To make my code easily readable, I want to restrict the number of columns to 80 characters. How can I break a line of code into two without any side effects?

As shown above, a simple or \ does not work.

What is the开发者_StackOverflow correct way to do this?


In Perl, a carriage return will serve in any place where a regular space does. Backslashes are not used like in some languages; just add a CR.

You can break strings up over multiple lines with concatenation or list operations:

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";

You can read about here documents in in perldoc perlop.


One more thing from Perl Best Practices:

Breaking Long lines : Break long expressions before an operator. like

push @steps, $step[-1]
                  + $radial_velocity * $elapsed_time
                  + $orbital_velocity * ($phrase + $phrase_shift)
                  - $test
                  ; #like that


This is because you are inside a string. You can split the strings and concatenate using . as:

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


Use ., the string concatenation operator:

$ perl
print "hello, " .
"world\n";ctrl-d
hello, world
$
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜