2015-06-18 21 views
0

當我編寫小程序或線索時,我無法使用say。我總是需要把:如何讓Perl始終使用v5.010運行?

#!/usr/bin/env perl 
use strict; 
use warnings; 
use 5.010; 

在oneliners我可以簡單地做perl -E "say 'toto'"但在經常方案我不知道該怎麼做...

任何想法?

+0

'使用功能'say''是慣用的方式。啓用一個版本會帶來很多東西,而不僅僅是「說」。就個人而言,我更喜歡使用'-l'來添加換行符,這會在'print'中添加換行符。編寫依賴於運行它的人使用某種特殊設置的代碼可能不是一個好主意。 – TLP

+1

請注意,您可以使用'CORE :: say'而不使用5.010;'或'-E'。 – ikegami

回答

5

你可以使用PERL5OPT環境變量

PERL5OPT=-M5.010 

,或者更安全的

PERL5OPT=-Mfeature=say 
4

這是非常設計。當perl正在從文件中讀取程序時,它仍保持後向兼容模式,以便舊版程序不會被在後續版本中添加的功能打破。通過說

use 5.010; 

你說你想要至少5.10,因此它打開該版本中存在的所有功能。這可以確保缺少這種聲明的文件不會被混淆。

+0

那麼,這與在兼容模式下使用vim相同。由於兼容性問題,我們陷入了90年代。我很傷心:( – nowox

+2

@nowox不要太難過,大多數Linux發行版都使用Perl 4風格的腳本,強制你的盒子「升級」這些腳本的解釋可能是不幸的* – tjd

+0

@nowox:這是更類似於vim默認爲兼容模式的事實,如果你不告訴它,vim就會在你的家中出現一個'.vimrc'文件,否則它是一個明智的方式,它不會讓老東西感到意外,易於新事物成爲可能 – LeoNerd

1

使用帶有模板或宏系統插入樣板編輯器設置默認perl命令行選項當你開始一個新的文件。例如,Emacs有skeleton.eltempo.el(以及其他許多可以安裝的軟件包)。

+0

這確實是我目前使用的解決方案(除了我是一個vim的傢伙):) – nowox