2010-10-16 39 views
15

Một con mèo tại công ty của tôi đã đi qua một bàn phím và đã để lại một dòng 1000 mã thực thi Perl hợp lệ để tôi duy trì.Tôi có thể tự động dọn dẹp mã nguồn Perl như thế nào?

Nhờ triết lý TMTOWTDI của Perl, tôi thấy mình đang tìm kiếm trên Google để hiểu mọi dòng mã mà cô ấy đã sản xuất.

Để thêm vào nỗi đau của mình, mã không được thụt vào và tìm thấy sự xuất hiện thường xuyên của hai câu lệnh trên một dòng, không có khả năng xác định liệu một vòng lặp có nằm ngoài/bên trong hay không.

Tôi làm cách nào để tự động định mã Perl này cho sự tỉnh táo? Có, tôi đặt cược sẽ có một số mô-đun CPAN làm điều đó. Làm thế nào về một số công cụ bên ngoài? Bất kì manh mối nào?

+0

-1 cho sự vui nhộn – MkV

+1

@MkV Điều đó làm tổn thương –

+5

+1 cho sự vui nhộn :) – ttvd

Trả lời

22

Perl::Tidy có thể làm điều đó và hơn thế nữa. Nó thường được sử dụng thông qua tệp thực thi perltidy mà nó cài đặt.

6

Perl Tidy là một tiện ích thực sự hữu ích. Nó đi kèm với một mảng offputting của các tùy chọn.
Có một số hướng dẫn tại http://perltidy.sourceforge.net/http://perltidy.sourceforge.net/tutorial.html

Ví dụ -i=8 overides số lượng không gian để thụt (mặc định = 4) và -bl đặt niềng răng trên một dòng mới:

if ($something) 
{ 
    print "....."; 
} 

tôi sẽ đề nghị chơi trên một bản sao của mã và xem bạn thích tùy chọn nào nhất.

Bạn có thể cài đặt từ CPAN hoặc các tùy chọn khác varioujs trên http://perltidy.sourceforge.net/ tùy thuộc vào nền tảng và sở thích của bạn!

6

Dưới đây là một vài ví dụ về cách sử dụng perltidy với hành vi không mặc định:

  • Enable ôm ấp-elses (. Ví dụ } else {), giới hạn độ dài dòng đến 300 ký tự cho tất cả các file .pl

    $ perltidy -ce -l=300 *.pl 
    
  • Duy trì breakpoint dấu phẩy cũ, đóng băng khoảng trắng hiện có trong script.pl

    $ perltidy -boc -fws script.pl 
    
  • kịch bản sao lưu và sửa đổi script1.pl, script2.pl tại chỗ

    $ perltidy -b script1.pl script2.pl 
    
  • 'xáo trộn' kịch bản bằng cách tách nó càng nhiều khoảng trắng càng tốt.

    $ perltidy --mangle scipt.pl 
    
1

Như với hầu hết mọi thứ, nếu bạn search CPAN, bạn có câu trả lời của bạn nhanh hơn nó sẽ đưa bạn để đăng nhập vào Stack Overflow. :)

Trong trường hợp này, đó là Perl::Tidy như những người khác đã đề cập. Chúng tôi có một số lời khuyên dài hơn về điều này trong Lập trình Perl hiệu quả.

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