운전자 . 에서는 Perl

점자가에 사용되는 펄에 대한 연결(연결)라인입니다.

예제:

▶ Run
#!/usr/bin/perl

print 'ABC' . 'DEF';

프로그램이 표시할 문자열 'ABCDEF'.

이 예에서는 점을 연산자가 적용하는 두 개의 라인에 쓰는 프로그램 코드(이러한 라인가"라는 문자열").

일반적으로,피연산자의 운전자 지점 . 는 문자열,스칼라 변수하거나 결과의 다른 기능이 있습니다.

문자열과 숫자

운전자 . 항상 노력하고 그들의 논쟁으로 문자열입니다. 의 결과는 이러한 네 가지 작업이 될 것입니다 같은 줄 '11'.

  • 1 . 1
  • 1 . '1'
  • '1' . 1
  • '1' . '1'

고는 괜찮습니다. 그것이 하는 것은 전혀 문제가 될 수 없을 연결하는 숫자에게 문자열은 결과입니다 정확히으로 예상된다.

사용으로 배열 피연산자

여기에 예를 들어 프로그램의 어디에 배열과 연결 문자열을 사용하여 운영자 .:

▶ Run
#!/usr/bin/perl

my @arr = ('one', 'two', 'three');

print 'A' . @arr . 'B';

프로그램이 표시할 문자열 'A3B'.

'A' . @arr . 'B' 하는 것과 동일 'A' . scalar(@arr) . 'B'.

때 배열을 사용하여 운전자 지점 . 배열에 사용되는 컨텍스트 스칼라와 배열 에서 클라이언트의 요소 수를 반환합니다 이 배열입니다.

사용 해시로의 연산자

여기에 샘플 프로그램에서는 해시 연결 문자열과 함께 사용하여 운영자 .:

▶ Run
#!/usr/bin/perl

my %h = (
    a => 'one',
    b => 'two',
);

print 'A' . %h . 'B';

에 따라 사전 프로그램 중 하나가 표시됩니다 문의 양식을 'A2/8B',또는 문자열 'A2B'.

'A' . %h . 'B' 하는 것과 동일 'A' . scalar(%h) . 'B'.

과 같은 방법으로 배열에 있는 경우,사용할 경우 해시와 운전자 지점 . 해시 에서 사용되는 스칼라 context.

Perl5.26 해시에서 스칼라 컨텍스트의 수를 반환합니다 쌍에 있는 요소의 이 해시입니다. 그의 버전에서는 Perl 하는 5.26 해시 클라이언트에서 유익한 정보에 대한 내부 구조의 해시입니다.

링크를 사용에 사부로 연산자

여기에는 예의는 프로그램에 링크를 사바로 연결 문자열을 사용하여 운영자 .:

▶ Run
#!/usr/bin/perl

my $sub = sub {
   return 42;
};

print 'A' . $sub . 'B';

Perl 버전 5.22 표시 같은 것 ACODE(0x1452f00)B에서 시작하여,5.22 화면에 그것은 것이 거의 같은 장소,하지만 더 자리한 후에 0x: ACODE(0x561e87413ed8)B.

다른 실행되는 프로그램의 표시됩니다 다른 번호를 사용합니다.

'A' . $sub . 'B' 과 같 'A' . scalar($sub) . 'B'. 사용하는 경우 클라이언트에서 유로 익명 사바 문자열을 반환의 양식을 CODE(0x10dbf00) 일 (에 대한 정보 어디에서 메모리에 대한 코드를 사바,이 지식이 매우 드문).

밑줄 _

문자열을 연결하는 Perl 에서,우리가 사용하는 운전자 지점 .. 문 밑줄 _ 에서는 Perl 하지 않습니다. 지 운전자 _ 이에서 인기있는 Perl 템플릿 라이브러리::툴킷에서 이 라이브러리를 사용에 대한 연결.

utf8 플래그

이 경우,연결에 참여하는 적어도 하나의 행은 내부 플래그 는 것을 의미하는 컨텐츠 utf8 인코딩되,다음의 결과로 줄이기도 합니다. 이 예에서는 확인 이 문제는:

▶ Run
#!/usr/bin/perl

use utf8;

my $str_with_flag = 'раз-два-три';

my $str_without_flag = 'one-two-three';

print utf8::is_utf8($str_with_flag) . "\n"; # prints 1
print utf8::is_utf8($str_without_flag) . "\n"; # prints empty string

print utf8::is_utf8($str_with_flag . $str_without_flag) . "\n"; # prints 1
print utf8::is_utf8($str_without_flag . $str_with_flag) . "\n"; # prints 1

관련 주제

다른 기사