2010-08-12 38 views
13

Tôi đã nghe rất nhiều về "Perl hiện đại" này. Nó là gì?"Perl hiện đại" là gì?

Một trong những điều tôi nghe là cú pháp mở mới:

open my $FH, '<', $filename 

và không

open FH, "<$filename"; 

gì khác là trong Modern Perl?

+1

[Để giải quyết ví dụ đầu của bạn trên, tôi cho rằng IO thủ tục không phải là Perl hiện đại] (http://www.perlmonks.org/?node_id=763565) - vì vậy chúng tôi đã thấy sự khác biệt trong thuật ngữ này có thể dễ dàng được so sánh với "Web 2.0". –

+2

Perl hiện đại == http: //www.ruby-lang.org/vi/ – whaley

+1

Tôi nghĩ một câu hỏi gây tranh cãi và thú vị hơn sẽ là, * Tôi có thể viết OO hiện đại mà không sử dụng 'Moose'? * –

Trả lời

9

Để thêm một số chi tiết cụ thể để khái quát deinst của, hiện đại Perl:

  • sử dụng Perl 5.10 của new features, như switch statements (given/when) và say
  • sau thực hành lập trình Perl tốt, giống như use strictuse warnings
  • có thể sử dụng mô-đun Modern::Perl CPAN để hợp lý hóa tất cả số này
  • sử dụng Moose cho viết mã OO cấp cao
+5

Ngoài ra: tránh các biến toàn cầu, thích những từ ngữ và phạm vi từ vựng lexical, viết mã mô-đun và tái sử dụng, sử dụng CPAN, kiểm tra, kiểm tra và nhiều thử nghiệm hơn ! – szbalint

+2

'Switch' bạn liên kết không phải là tính năng Perl 5.10. Đó là mô-đun cốt lõi, hiện không được chấp nhận. Bạn có thể muốn suy nghĩ về ['given' /' when'] (http://perldoc.perl.org/perlsyn.html#Switch-statements) –

+0

@ Ven'Tatsu: Đã sửa lỗi. Cảm ơn vì sự đúng đắn của bạn. –

2

Perl hiện đại không phải là danh từ thích hợp; nó chỉ là một cái gì đó mọi người có thể nói để tham khảo mã Perl sử dụng các tính năng chỉ có sẵn trong X năm qua, nơi X sẽ thay đổi từ người này sang người khác.

Để biết thông tin về các thay đổi khác nhau đối với Perl, hãy xem các tệp perldelta, ví dụ: http://perldoc.perl.org/index-history.html.

+1

(Có, – ysth

11

Để trích dẫn source

lập trình Perl hiện đại, khoảng năm 2010, dựa vào sự khôn ngoan thu của toàn bộ Perl hệ sinh thái. Đã đến lúc viết mã thanh lịch, đáng tin cậy, có thể bảo trì, được kiểm tra và có thể dự đoán được .

Xem thêm, the book. Và trích dẫn này từ cuốn sách

Perl hiện đại là mô tả lỏng lẻo về cách thức hoạt động của chương trình Perl 5 hiệu quả và giàu kinh nghiệm. Họ sử dụng thành ngữ ngôn ngữ. Họ tận dụng lợi thế của CPAN. Chúng được công nhận là Perlish, và chúng thể hiện hương vị và sự khéo léo và hiểu biết đầy đủ về Perl.

1

Để được cụ thể cho câu hỏi của bạn liên quan đến việc mở một xử lý tập tin trong Perl hiện đại: Bạn nên sử dụng hình thức ba đối số, thay vì hình thức hai luận!

Sử dụng biểu mẫu ba đối số open để chỉ định lớp I/O (còn được gọi là "quy tắc") để áp dụng cho tay cầm. Nó ảnh hưởng đến cách đọc-ghi được xử lý (xem http://perldoc.perl.org/functions/open.html để biết thêm chi tiết). Ví dụ:

open(my $fh, "<:encoding(UTF-8)", "filename") 
|| die "can't open UTF-8 encoded filename: $!"; 
Các vấn đề liên quan