운전자 x 에서는 Perl

운전자 x 에 따라 다르게 동작하는 방법이 사용됩니다.

클라이언트에서 유입된 라인을 만들의 원하는 길이 반복되는 문자입니다. 우리가 말할 수있는 이 문을 만드는"곱셈"의 문자열입니다.

목록에서 컨텍스트(및면 왼쪽 피연산자가 서면에서 괄호 또는 사용 qw)그는 반복 요소를 지정한다.

여기서의 예산 x 에서 스칼라 context:

▶ Run
#!/usr/bin/perl

my $str = 'A' x 4;

print $str;

프로그램이 표시 문자열로 구성된 네 개의 문자 'A': 'AAAA'.

면 왼쪽 연산자를 지정하는 여러 문자,그 모든 것이 반복되:

▶ Run
#!/usr/bin/perl

my $str = 'Abc' x 2;

print $str;

이 예는 문자열을 표시합 'AbcAbc'.

사용 빈 문자열

에서 클라이언트 운영자 x 을 반복하고 문자열을 지정하는 왼쪽에는 연산자는 횟수를 지정한 올바른 피연산자가 있습니다.

지정한 경우로 왼쪽 연산자입니다면 빈 문자열 '',에서 스칼라 컨텍스트 결과는 항상 빈 문자열에 관계없이, 의 값이 오른 연산자:

▶ Run
#!/usr/bin/perl

use Data::Dumper;

my $str = '' x 100;

print Dumper $str;

결론에서의 프로그램은 그것이 볼 수있는 $str 는 빈 문자열이 포함됩니다.

하는 것은 의미가 없이 사용자에서 클라이언트 빈 문자열입니다.

의 값이 오른 연산자

스칼라 맥락에서,권리 연산자의에서는 운전자 x 는 방법을 알려줍니다 많은 시간이 필요하신 을 반복을 포함하는 줄 왼쪽 피연산자가 있습니다. 경우에의 적은 양의 정수,다음을 명백하게,무엇으로 발생한 결과입니다.

그러나 숫자 뿐만 아니라 긍정적이다.

  • 오른쪽 피연산자가 수 0,결과는 항상 빈 문자열입니다.
  • 오른쪽 피연산자가 부수,결과는 항상 빈 문자열입니다.

는 경우에는 코드는 use warnings;,를 사용하여 부정적인 수으로 바로 운영자는 경고가 표시됩니다. 여기에는 이 스크립트의 예를 표시하는 문자열 'Negative repeat count does nothing at script.pl line 5.'.

▶ Run
#!/usr/bin/perl

use warnings;

my $str = 'a' x -3;

print $str;

는 경우 권리 연산자입니다 긍정적인 수를 분수 부분,이 분수 부분은 단순히 삭제됩니다. 결과 'A' x 2.1 될 것입니다 정확히 같은 결과 'A' x 2.99 —라인 'AA'.

목록 컨텍스트

목록에서 컨텍스트 연산자 x 을 반복하고 요소입니다. 하지만 그 외에 당신은 목록이 필요한 맥락에,당신은 필요 또한 맞게 왼쪽 피연산자에 괄호 안에 표시됩니다. 아래 코드를 생성 배 @arr 을 포함하는 3 요소 각 요소의 문자열입니다 'a':

▶ Run
#!/usr/bin/perl

use Data::Dumper;

my @arr = ('a') x 3;

print Dumper \@arr;

하지만 지정하지 않는 경우 괄호 안에서 왼쪽 피연산자,그리고 my @arr = 'a' x 3;,배열 @arr될 것입니다 만 하나의 항목,문자열 'aaa'.

또한 단순한 부류,연산자를 사용할 수 있습니다 qw:

▶ Run
#!/usr/bin/perl

use Data::Dumper;

my @arr = qw(abc def) x 2;

print Dumper \@arr;

이 코드를 실행하면 배열에 @arr 4 요소의 문자열 'abc', 'def', 'abc', 'def'.

공식적인 문서

여기에 조각의 출력 perldoc perlop 에 대한 운영자 x:

Multiplicative Operators

...

    Binary "x" is the repetition operator. In scalar context or if the left
    operand is not enclosed in parentheses, it returns a string consisting of
    the left operand repeated the number of times specified by the right
    operand. In list context, if the left operand is enclosed in parentheses
    or is a list formed by "qw/STRING/", it repeats the list. If the right
    operand is zero or negative (raising a warning on negative), it returns an
    empty string or an empty list, depending on the context.

        print '-' x 80;             # print row of dashes

        print "\t" x ($tab/8), ' ' x ($tab%8);      # tab over

        @ones = (1) x 80;           # a list of 80 1's
        @ones = (5) x @ones;        # set all elements to 5

다른 기사