我一直聽到很多關於這個「現代Perl」的消息。它是什麼?什麼是「Modern Perl」?
一個我聽到的是新開的語法的事情:
open my $FH, '<', $filename
,而不是
open FH, "<$filename";
還有什麼是現代的Perl?
我一直聽到很多關於這個「現代Perl」的消息。它是什麼?什麼是「Modern Perl」?
一個我聽到的是新開的語法的事情:
open my $FH, '<', $filename
,而不是
open FH, "<$filename";
還有什麼是現代的Perl?
對一些細節添加到deinst的概述,現代的Perl:
given
/when
)和say
use strict
和use warnings
另外:避免使用全局變量,更喜歡使用詞法作用域和訪問器,使用CPAN編寫模塊化和可重用的代碼,使用CPAN,測試,測試和更多的測試! – szbalint 2010-08-12 16:24:49
您鏈接的'switch'不是Perl 5.10功能。這是一個已被棄用的核心模塊。你可能想考慮[''given' /'when'](http://perldoc.perl.org/perlsyn.html#Switch-statements) – 2010-08-12 17:46:36
@ Ven'Tatsu:修正。感謝您的更正。 – 2010-08-12 17:55:57
現代Perl不是專有名詞;這只是人們可能會說的引用Perl代碼的一些東西,這些代碼只使用了過去X年中可用的功能,其中X因人而異。
有關Perl各種更改的信息,請參閱perldelta文件,例如http://perldoc.perl.org/index-history.html。
(是的, – ysth 2010-08-12 17:07:11
爲了具體到你的問題涉及到開放現代的Perl文件句柄:你應該使用三個參數的形式,而不是兩個參數的形式!
使用open
的三參數形式來指定應用於句柄的I/O層(也稱爲「學科」)。它會影響讀寫的處理方式(有關更多詳細信息,請參閱http://perldoc.perl.org/functions/open.html)。例如:
open(my $fh, "<:encoding(UTF-8)", "filename")
|| die "can't open UTF-8 encoded filename: $!";
[要在解決你的榜樣的頭,我認爲,程序IO不是現代的Perl(http://www.perlmonks.org/?node_id=763565) - 所以我們已經看到這個術語中的差異很容易被比喻爲「Web 2.0」。 – 2010-08-12 16:13:40
現代Perl == http://www.ruby-lang。org/en/ – whaley 2010-08-12 16:16:31
我認爲一個更有爭議和有趣的問題是,*我可以在不使用'Moose'的情況下編寫現代OO perl嗎?* – 2010-08-12 16:18:17