Perl Language
Perl에서 보간
수색…
기본 보간법
보간은 Perl 인터프리터가 특수 문자 시퀀스 (이스케이프라고도 함)에 대해 이름과 일부 기호 (직접 입력 할 수 없거나 직접 입력하기 어려운 기호)로 변수 값을 대체 함을 의미합니다. 가장 중요한 차이는 작은 따옴표와 큰 따옴표 사이에있는 것입니다. 큰 따옴표는 묶은 문자열을 보간하지만 작은 따옴표는 포함하지 않습니다.
my $name = 'Paul';
my $age = 64;
print "My name is $name.\nI am $age.\n"; # My name is Paul.
# I am 64.
그러나:
print 'My name is $name.\nI am $age.\n'; # My name is $name.\nI am $age.\n
작은 따옴표 대신 q{}
(구분 기호 포함) 및 큰 따옴표 대신 qq{}
를 사용할 수 있습니다. 예를 들어, q{I'm 64}
는 보간되지 않은 문자열 내에서 아포스트로피를 사용할 수 있습니다 (그렇지 않으면 문자열을 종료합니다).
진술 :
print qq{$name said: "I'm $age".}; # Paul said: "I'm 64".
print "$name said: \"I'm $age\"." # Paul said: "I'm 64".
똑같은 일을하지만 처음에는 문자열 내에서 큰 따옴표를 이스케이프 할 필요가 없습니다.
변수 이름이 주변 텍스트와 충돌하면 ${var}
구문을 사용하여 다음과 같이 명확하게 할 수 있습니다.
my $decade = 80;
print "I like ${decade}s music!" # I like 80s music!
보간 된 것
Perl은 변수 이름을 보간합니다 :
my $name = 'Paul';
print "Hello, $name!\n"; # Hello, Paul!
my @char = ('a', 'b', 'c');
print "$char[1]\n"; # b
my %map = (a => 125, b => 1080, c => 11);
print "$map{a}\n"; # 125
배열은 전체적으로 보간 될 수 있고, 요소는 공백으로 구분됩니다.
my @char = ('a', 'b', 'c');
print "My chars are @char\n"; # My chars are a b c
Perl은 해시 전체를 보간하지 않습니다 .
my %map = (a => 125, b => 1080, c => 11);
print "My map is %map\n"; # My map is %map
함수 호출 (상수 포함) :
use constant {
PI => '3.1415926'
};
print "I like PI\n"; # I like PI
print "I like " . PI . "\n"; # I like 3.1415926
Perl은 \
시작하는 이스케이프 시퀀스를 보간합니다.
\t horizontal tab
\n newline
\r return
\f form feed
\b backspace
\a alarm (bell)
\e escape
보간 \n
프로그램 작동 시스템에 의존한다 : 그것은 현재 시스템 규칙에 따라 개행 문자 (들)를 생성한다.
펄은 \v
보간하지 않는다 . C와 다른 언어의 수직 탭을 의미한다.
문자는 해당 코드를 사용하여 해결할 수 있습니다.
\x{1d11e} 𝄞 by hexadecimal code
\o{350436} 𝄞 by octal code
\N{U+1d11e} 𝄞 by Unicode code point
또는 유니 코드 이름 :
\N{MUSICAL SYMBOL G CLEF}
네이티브 인코딩의 0x00
에서 0xFF
까지의 코드가있는 문자는 더 짧은 형식으로 처리 할 수 있습니다.
\x0a hexadecimal
\012 octal
제어 문자는 특수 이스케이프 시퀀스를 사용하여 지정할 수 있습니다.
\c@ chr(0)
\ca chr(1)
\cb chr(2)
...
\cz chr(26)
\c[ chr(27)
\c\ chr(28) # Cannot be used at the end of a string
# since backslash will interpolate the terminating quote
\c] chr(29)
\c^ chr(30)
\c_ chr(31)
\c? chr(127)
대문자는 "\cA" == "\ca"
와 같은 의미입니다.
\N{...}
제외한 모든 이스케이프 시퀀스의 해석은 플랫폼 및 인코딩 종속 코드를 사용하기 때문에 플랫폼에 따라 다를 수 있습니다.