do
require
use
eval
@_
$_[0]
$_[1]
return
foreach
while
my()
@a
@b
&
&$subref()
&{$subref}()
$subref->()
AUTOLOAD
CLONE
DESTROY
BEGIN
UNITCHECK
CHECK
INIT
END
my
$/
local
bumpx()
sub
eval()
continue
elsif
else
some_function()
our
use vars
$main::str
no strict 'vars'
use strict 'vars'
::
$some_pack::secret_version
state
feature
-E
$x
state $x=42
do 파일
name
local */
local $_
my $_
local()
delete()
shift
주인장 주: perl 5.12 부터 지원하는 기능으로, 5.10에서는 마지막 예제 코드를 실행하면 설명과 다른 결과가 나옴
delete local $array[$idx]
delete local $hash{$key}
*foo
push
pop
@ARGV
while (local $_ = )
my $_ = ...
%a
%b
*STDOUT
주인장 코멘트: openit()을 호출하는 쪽에서는 *IN = openit()와 같이 파일핸들 타입글로브를 쓸 수도 있는데, 이 경우 openit()이 undef을 반환할 경우 경고가 뜬다. 최신 Perl에서는 파일핸들을 스칼라변수에 담아 쓸 수 있으므로, my $in = openit()와 같이 사용하는 것이 낫지 싶다.
*IN = openit()
my $in = openit()
mypush
push()
\&foo
&{$subref}
\
\[]
@
%
$
{ 코드 }
*
$$;$
$$@
$$;@
_
$_
mygrep()
myrand()
rand()
mytime()
time()
mytime() + 2
mytime(2)
grep
scalar
@foo
1
split
()
use subs
CORE::
&open()
CORE::open()
open()
\&CORE::open
open
chdir
@EXPORT
@EXPORT_OK
CORE::GLOBAL::
glob
REGlob
File::DosGlob
prototype
"CORE::내장함수이름"
system
chomp
do BLOCK
require Foo::Bar
"Foo/Bar.pm"
<*>
readline
<파일핸들>
readpipe
``
qw//
exists
$AUTOLOAD
import
unimport
use attributes
use attrs
sub : 속성리스트