Perl500503Syntax-OrDie
view release on metacpan or search on metacpan
doc/Perl500503Syntax-OrDie_cheatsheet.JA.txt view on Meta::CPAN
"%v" ãå«ã¾ãã¦ãã¦ãéåã«ã¯ãªãã¾ããããããã¯å®è¡æã®å¤ã§ããã
æ§æè¦ç´ ã§ã¯ãªãããã§ãã
open() 㨠mkdir() ã«å¯¾ãã CORE::GLOBAL:: ãªã¼ãã¼ã©ã¤ãã«ãã
ã©ã³ã¿ã¤ã ã¬ã¼ããè¨ç½®ããã¾ãã
ã³ãã³ãã¨ãã¦å®è¡ããå ´åã¯ãã³ãã³ãã©ã¤ã³ã§æå®ããåãã¡ã¤ã«ã
ãã§ãã¯ãã¦çµæã表示ãã¾ãã"-" ãæå®ããã¨æ¨æºå
¥åããèªã¿è¾¼ã¿ã¾ãã
弿°ãªãã§å®è¡ããå ´åã¯ä½¿ç¨æ¹æ³ã表示ãã¾ãã
ã½ã¼ã¹ãã£ã«ã¿æ©æ§ã¯ä½¿ç¨ãã¾ãããPerl 5.005_03 ããç¾å¨ã®ãªãªã¼ã¹ã¾ã§
åä½ãã¾ãã
ããã°ã©ããã£ãã¯API
check_source($source, $label)
$sourceï¼æååï¼ãã¹ãã£ã³ããéåã¡ãã»ã¼ã¸ã®ãªã¹ããè¿ãã¾ãã
éåããªããã°ç©ºãªã¹ããè¿ãã¾ããèªåçã« die ãã¾ããã
å¼ã³åºãå´ã§ãªã¹ããå¦çãã¾ãã
my @v = Perl500503Syntax::OrDie::check_source($src, 'foo.pl');
if (@v) { warn $_ for @v }
check_file($path)
$path ãèªã¿è¾¼ãã§ check_source ãå¼ã³åºãã¾ãã
éåãããã° die ãã¾ãã
ãã§ãã¯å¯¾è±¡æ§æï¼éçãã§ãã¯ãã³ã³ãã¤ã«æï¼
Perl 5.6
our $var / our @arr / our %hash ("use vars" ã使ç¨ãããã¨)
open(FH, MODE, PATH) 3弿°å½¢å¼
use utf8
use VERSION (VERSION >= 5.6)
use vVERSION (VERSION >= v5.6)
\x{HHHH} Unicode16é²ã¨ã¹ã±ã¼ã
\N{name} ååä»ãæåã¨ã¹ã±ã¼ã
@+ / @- ããã³ $+[N] / $-[N] ãããä½ç½®é
å
CHECK { } / INIT { } ãã§ã¼ãºãããã¯
v1.2.3 vã¹ããªã³ã°è¨æ³
$^V ãã¼ã¸ã§ã³ãªãã¸ã§ã¯ãï¼$]ã使ç¨ï¼
sub foo :lvalue { } :lvalue 屿§
*name{SLOT} typeglobã³ã³ãã¼ãã³ãã¢ã¯ã»ã¹
\p{} / \P{} æ£è¦è¡¨ç¾å
Unicodeããããã£
Perl 5.8
use encoding
use constant { A => 1, B => 2 } è¤æ°å®æ°ããã·ã¥ãªãã¡ã¬ã³ã¹å½¢å¼
Perl 5.10
//= å®ç¾©æ¸ã¿å¤å®ä»£å
¥æ¼ç®å
// å®ç¾©æ¸ã¿å¤å®æ¼ç®åï¼åä½ï¼
say (->say() ã¡ã½ããå¼ã³åºãã¯é¤å¤)
state $var
given(...) / when(...)
~~ ã¹ãã¼ãããã
use feature
\K æ£è¦è¡¨ç¾å
keep
(?<name>...) / \k<name> ååä»ããã£ããã£/徿¹åç
§
(?|...) ãã©ã³ããªã»ããã°ã«ã¼ã
(*VERB) ããã¯ãã©ãã¯å¶å¾¡åè©
\h \H \v \V \R æ£è¦è¡¨ç¾å
空ç½ã¨ã¹ã±ã¼ã
UNITCHECK { } ãã§ã¼ãºãããã¯
a++ / a*+ / a?+ ææéåå
(?1) / (?&name) / (?R) å帰ãã¿ã¼ã³
${^MATCH} ${^PREMATCH} ${^POSTMATCH} ããã夿°ï¼/pãã©ã°ä½¿ç¨æï¼
\g{N} ç¸å¯¾/çµ¶å¯¾å¾æ¹åç
§
Perl 5.12
package NAME VERSION
... ã¤ãã¤ãæ¼ç®å
Perl 5.14
s///r tr///r éç ´å£ãã©ã°
Perl 5.16
__SUB__
Perl 5.18
my sub foo { } ã¬ãã·ã«ã«ãµãã«ã¼ãã³å®£è¨
state sub foo { }
Perl 5.20
sub foo ($x, $y) { } ãµãã«ã¼ãã³ã·ã°ããã£
$ref->@* $ref->%* å¾ç½®ããªãã¡ã¬ã³ã¹ï¼5.24ã§å®å®åï¼
%hash{LIST} %array[LIST] ãã¼/å¤ã¹ã©ã¤ã¹ï¼æ°æ§æï¼
Perl 5.22
<<>> ããã«ãã¤ã¤ã¢ã³ãæ¼ç®å
/n éãã£ããã£æ£è¦è¡¨ç¾ãã©ã°
$a &. $b $a |. $b ^.= ~.$a æååãããæ¼ç®åï¼5.28ã§å®å®åï¼
foreach \$x (@list) ãªãã¡ã¬ã³ã¹ã¨ã¤ãªã¢ã¹ï¼foreachï¼
Perl 5.26
<<~ ã¤ã³ãã³ãä»ããã¢ããã¥ã¡ã³ã
Perl 5.30
(?<=.{2,}X) å¯å¤é· lookbehindï¼å®é¨çã5.38ã§å®å®åï¼
Perl 5.32
$obj isa ClassName isa ä¸ç½®æ¼ç®å
(->isa() ããã³ isa() å¼ã³åºãã¯é¤å¤)
Perl 5.34
try { } catch ($e) { }
Perl 5.36
use builtin
for my ($a, $b) (@list) ãã¢ã¤ãã¬ã¼ã·ã§ã³
Perl 5.38
class Foo { } class ãã¼ã¯ã¼ã
å¯å¤é· lookbehindï¼å®å®åï¼
Perl 5.40
$x ^^ $y / $x ^^= $y é«åªå
度è«ç XOR æ¼ç®å
__CLASS__ class ãããã¯å
ã®ã©ã³ã¿ã¤ã ã¯ã©ã¹å
Perl 5.42
any { EXPR } @list ãã¼ã¯ã¼ãæ¼ç®åï¼List::Util ã
all { EXPR } @list any/all ãã¤ã³ãã¼ãããå ´åã¯æå¶ï¼
my method foo () { } ã¬ãã·ã«ã«ã¡ã½ãã宣è¨
$obj->&foo() ã¬ãã·ã«ã«ã¡ã½ããå¼ã³åºã
doc/Perl500503Syntax-OrDie_cheatsheet.JA.txt view on Meta::CPAN
3弿° open()
open(FH, MODE, PATH) å½¢å¼ã2弿°å½¢å¼ open(FH, ">path") ã使ç¨ãããã¨ã
use utf8
ã½ã¼ã¹ãã¡ã¤ã«ã UTF-8 ã¨ã³ã³ã¼ãããã¦ãããã¨ã宣è¨ã
use VERSIONï¼>= 5.006 ã¾ã㯠v5.6ï¼
æä½Perlãã¼ã¸ã§ã³ã "use 5.006" ã¾ã㯠"use v5.6" ã§æå®ã
\x{HHHH} Unicodeã¨ã¹ã±ã¼ã
0xFF ãè¶
ããUnicodeã³ã¼ããã¤ã³ãã®æ¡å¼µ16é²ã¨ã¹ã±ã¼ãã
\N{name} ååä»ãæåã¨ã¹ã±ã¼ã
æ£è¦è¡¨ç¾/æååå
ã®ååä»ãUnicodeæåï¼ä¾: \N{SNOWMAN}ï¼ã
@+ ããã³ @- / $+[N] $-[N]
ç´è¿ã®æ£è¦è¡¨ç¾ãããã®éå§/çµäºä½ç½®ãä¿æããé
åã
CHECK { } / INIT { } ãã§ã¼ãºãããã¯
ç¹å®ã®ã³ã³ãã¤ã«/å®è¡ãã§ã¼ãºã§å®è¡ãããååä»ããããã¯ã
ï¼END { } 㨠BEGIN { } 㯠5.6 以åããå©ç¨å¯è½ãï¼
vã¹ããªã³ã°è¨æ³ï¼v1.2.3ï¼
v5.6.1 ãªã©ã®ãã¯ã¿æååã
$^V ãã¼ã¸ã§ã³ãªãã¸ã§ã¯ã
5.005_03 äºæã«ã¯æ°å¤ã® $] ã使ç¨ãããã¨ã
:lvalue ãµãã«ã¼ãã³å±æ§
ãµãã«ã¼ãã³ãæå¹ãªlvalueï¼ä»£å
¥å¯è½ï¼ã¨ãã¦ãã¼ã¯ã
*name{SLOT} typeglobã³ã³ãã¼ãã³ãã¢ã¯ã»ã¹
*FH{IO}ã*foo{SCALAR}ã*foo{CODE} çãPerl 5.005_03 ã§ã¯æªå¯¾å¿ã
\p{Property} / \P{Property} Unicode ããããã£ã¨ã¹ã±ã¼ã
Unicodeããããã£ã§æåããããï¼ä¾: \p{IsAlpha}ï¼ã
æç¤ºçã¢ã¼ããªã mkdir()
5.6以é㯠mkdir(PATH) ã®ããã©ã«ãã 0777ã
5.005_03 ã§ã¯å¼æ°ãå¿
é : mkdir(PATH, MODE)ã
perl58deltaï¼Perl 5.8.0ã2002-07-18ï¼
use encoding
ã½ã¼ã¹ã¨ã³ã³ã¼ãã£ã³ã°ãã©ã°ãã®ãã¼ãï¼ä¾: "use encoding 'euc-jp'"ï¼ã
use constant { A => 1, B => 2 }
è¤æ°å®æ°ã®ããã·ã¥ãªãã¡ã¬ã³ã¹å½¢å¼ã5.005_03 äºæã«ã¯åå¥ã®
"use constant" æã使ç¨ãããã¨ã
perl5100deltaï¼Perl 5.10.0ã2007-12-18ï¼
// å®ç¾©æ¸ã¿å¤å®æ¼ç®å
"$x // $y" 㯠"defined($x) ? $x : $y" ã¨ç価ã
//= å®ç¾©æ¸ã¿å¤å®ä»£å
¥
"$x //= $y" 㯠$x ãæªå®ç¾©ãªã $y ã代å
¥ã
say LIST
printã¨åæ§ã ãæ¹è¡ã追å ã
注: ->say() ã¡ã½ããå¼ã³åºãããã³ "say =>" ããã·ã¥ãã¼ã¯å¯¾è±¡å¤ã
state VARIABLE
ã¬ãã·ã«ã«ã¹ã³ã¼ãã®æ°¸ç¶å¤æ°ï¼Cã®staticã®ãããªPONYã«ï¼ã
given(EXPR) { when(VAL) { ... } }
switch/caseæ§æï¼5.10ã§å®é¨çã5.36以éã§åé¤ï¼ã
~~ ã¹ãã¼ããããæ¼ç®å
æ§ã
ãªåã®ãªã¼ãã¼ãã¼ãæ¯è¼æ¼ç®åã
use feature
ååä»ãè¨èªæ©è½ãæå¹åï¼sayãstateãswitchçï¼ã
\Kï¼æ£è¦è¡¨ç¾å
keepï¼
ãããæååã®éå§ä½ç½®ããªã»ããã
(?<name>...) ååä»ããã£ããã£ã°ã«ã¼ã / \k<name> ååä»ã徿¹åç
§
(?|...) ãã©ã³ããªã»ããã°ã«ã¼ã
å代æ¿ã§ãã£ããã£ã°ã«ã¼ãçªå·ããªã»ããã
(*VERB) ããã¯ãã©ãã¯å¶å¾¡åè©
(*FAIL)ã(*ACCEPT)ã(*PRUNE)ã(*SKIP)ã(*MARK)ã(*COMMIT)ã(*THEN)ã
\h \H \v \V \R 空ç½ã¨ã¹ã±ã¼ã
UNITCHECK { } ãã§ã¼ãºãããã¯
åã³ã³ãã¤ã«ã¦ãããã®ã³ã³ãã¤ã«çµäºæã«å®è¡ã
ææéåå a++ a*+ a?+ a{n,m}+
ããã¯ãã©ãã¯æã«è¿å´ããªãéååã
(?PARNO) (?&name) (?R) å帰ãµããã¿ã¼ã³
${^MATCH} ${^PREMATCH} ${^POSTMATCH}
/pãã©ã°ä½¿ç¨æã® $&ã$`ã$' ã®ç価ç©ã
\g{N} \g{-N} 絶対/ç¸å¯¾å¾æ¹åç
§
perl5120deltaï¼Perl 5.12.0ã2010-04-12ï¼
package NAME VERSION
ããã±ã¼ã¸å®£è¨ã¨ãã¼ã¸ã§ã³æå®ã®ä¸ä½åã
... ã¤ãã¤ãæ¼ç®å
æªå®è£
ã³ã¼ãã®ãã¬ã¼ã¹ãã«ããå°éæã« "Unimplemented" ã throwã
perl5140deltaï¼Perl 5.14.0ã2011-05-14ï¼
s/PATTERN/REPLACEMENT/r tr/LIST/LIST/r
éç ´å£çãªç½®æ/夿ãã©ã°ãå
ã®æååã夿´ããå¤æçµæãè¿ãã
perl5160deltaï¼Perl 5.16.0ã2012-05-20ï¼
__SUB__
ç¾å¨å®è¡ä¸ã®ãµãã«ã¼ãã³ã¸ã®åç
§ï¼"use feature 'current_sub'" ã§æå¹åï¼ã
perl5180deltaï¼Perl 5.18.0ã2013-05-16ï¼
my sub NAME / state sub NAME â ã¬ãã·ã«ã«ãµãã«ã¼ãã³ï¼å®é¨çï¼
ãããã¯ã¹ã³ã¼ãã®ãµãã«ã¼ãã³å®£è¨ãPerl 5.26以éã¯å¸¸ã«æå¹ã
perl5200deltaï¼Perl 5.20.0ã2014-05-27ï¼
ãµãã«ã¼ãã³ã·ã°ããã£ï¼å®é¨çï¼
sub foo ($x, $y = 0) { ... }
%hash{LIST} / %array[LIST] ãã¼/å¤ã¹ã©ã¤ã¹ï¼æ°æ§æï¼
ãã¼ã¨å¤ã®ãã¢ã®ãã©ãããªã¹ããè¿ãæ°ãã % ã·ã¸ã«æ§æã
å¾ç½®ããªãã¡ã¬ã³ã¹ï¼å®é¨ç; Perl 5.24ã§å®å®åï¼
$ref->@* $ref->%* $ref->&* $ref->$*
perl5220deltaï¼Perl 5.22.0ã2015-06-01ï¼
<<>> ããã«ãã¤ã¤ã¢ã³ãæ¼ç®å
ARGVã®åãã¡ã¤ã«ã3弿°openã§å®å
¨ã«éã <> ã®å®å
¨çã
/n éãã£ããã£æ£è¦è¡¨ç¾ãã©ã°
ãã¹ã¦ã®ãã£ããã£ã°ã«ã¼ããéãã£ããã£ã«ããã
&. |. ^. ~. æååãããæ¼ç®åï¼å®é¨ç; Perl 5.28ã§å®å®åï¼
ãªãã©ã³ããä¸è²«ãã¦æååã¨ãã¦æ±ããè¤å代å
¥å½¢å¼ &.= |.= ^.= ã対象ã
\foreach ãªãã¡ã¬ã³ã¹ã¨ã¤ãªã¢ã¹ï¼å®é¨çï¼
foreach \my $x (@list) { ... } ã§ $x ãåè¦ç´ ã«ç´æ¥æç¸ã
perl5260deltaï¼Perl 5.26.0ã2017-05-30ï¼
<<~ ã¤ã³ãã³ãä»ããã¢ããã¥ã¡ã³ã
ãã¢ããã¥ã¡ã³ãæ¬ä½ããå
é ã®ç©ºç½ãé¤å»ã
perl5300deltaï¼Perl 5.30.0ã2019-05-22ï¼
æ£è¦è¡¨ç¾å
ã®å¯å¤é· lookbehindï¼å®é¨çå°å
¥ï¼
(?<=...) ã¾ã㯠(?<!...) ã§ãã¿ã¼ã³ã®é·ããå¯å¤ãªãã®ã
ã³ã³ãã¤ã«å¯è½ã«ï¼ãã以åã¯è´å½çã¨ã©ã¼ï¼ãPerl 5.38ã§å®å®åã
perl5320deltaï¼Perl 5.32.0ã2020-06-20ï¼
isa ä¸ç½®æ¼ç®å
$obj isa "ClassName"ï¼$objãåç
§ã§ãªãã¦ãå®ç¾©æ¸ã¿ï¼ã
注: ->isa() ã¡ã½ããå¼ã³åºãããã³ isa() 颿°å¼ã³åºãã¯å¯¾è±¡å¤ã
perl5340deltaï¼Perl 5.34.0ã2021-05-20ï¼
try / catchï¼å®é¨çãuse feature 'try' ã§æå¹åï¼
( run in 1.100 second using v1.01-cache-2.11-cpan-9581c071862 )