2010-10-21 20 views
23
$ 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 
$ 

Để làm cho mã của tôi dễ đọc, tôi muốn giới hạn số lượng cột thành 80 ký tự. Làm thế nào tôi có thể phá vỡ một dòng mã thành hai mà không có bất kỳ tác dụng phụ?Cách chính xác để ngắt dòng mã Perl thành hai là gì?

Như được hiển thị ở trên, một đơn giản hoặc \ không hoạt động.

Cách chính xác để thực hiện việc này là gì?

Trả lời

36

Trong Perl, một trở về vận chuyển sẽ phục vụ trong bất kỳ nơi một không gian thường xuyên thực hiện. Dấu gạch chéo ngược không được sử dụng như trong một số ngôn ngữ; chỉ cần thêm CR.

Bạn có thể phá vỡ chuỗi lên trên nhiều dòng với nối hoặc danh sách các hoạt động:

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

Bạn có thể đọc về đây tài liệu trong trong perldoc perlop.

+1

Cũng lưu ý rằng văn bản trả về bởi heredoc chứa các ký tự dòng mới khi chúng được viết trong khi các ký tự được ghép nối không –

1

Sử dụng ., các nhà điều hành chuỗi nối:

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

'print' chỉ là một ví dụ mà tôi đã sử dụng. Có tính năng ngắt dòng * chung cho Perl không? – Lazer

+0

@Lazer: Nếu bạn muốn một chuỗi nhiều dòng là một dòng, hãy sử dụng '.'. Nếu không, perl là dạng tự do và bạn có thể đặt một dòng mới ở bất kỳ đâu. – imgx64

4

Điều này là do bạn đang ở trong một chuỗi. Bạn có thể chia các dây và nối sử dụng . như:

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

hơn Một điều từ Perl Best Practices:

Breaking đường dài: Phá vỡ biểu dài trước khi một nhà điều hành. như

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

I * ghét * kiểu đó trước khi đọc cuốn sách đó. Tôi đã nhìn thấy nó trên các kịch bản clist của mainframe, nhưng Damian đã tạo ra một trường hợp tốt về tốc độ xem những gì đang được thực hiện. Và bây giờ tôi sử dụng nó mọi lúc. 1 cho PBP! – Axeman

Các vấn đề liên quan