문제

파이썬에서, 내가 이것을한다면 :

print "4" * 4

나는 얻다

> "4444"

Perl에서 나는 얻을 것이다

> 16

Perl에서 전자를 할 수있는 쉬운 방법이 있습니까?

도움이 되었습니까?

해결책

$ perl -e 'print "4"x4; print "\n"'
4444

X 연산자는 Perldoc에 문서화되어 있습니다 퍼 로프. 여기서 바이너리는 비트로 구성된 두 가지 인수를 취하는 연산자를 의미합니다.

바이너리 "X"는 반복 연산자입니다. 스칼라 컨텍스트 또는 왼쪽 피연산자가 괄호로 둘러싸여 있지 않은 경우 왼쪽 피연산자로 구성된 문자열이 오른쪽 피연산자에 의해 지정된 횟수를 반복합니다. 목록 컨텍스트에서 왼쪽 피연산자가 괄호로 둘러싸여 있거나 다음에 의해 형성된 목록 인 경우 "qw/STRING/", 그것은 목록을 반복합니다. 오른쪽 피연산자가 0이거나 음수 인 경우 컨텍스트에 따라 빈 문자열 또는 빈 목록을 반환합니다.

       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

perl -e 명령 줄에서 Perl 코드를 실행하기위한 것입니다.

$ perl --help
Usage: perl [switches] [--] [programfile] [arguments]
  
  -e program     one line of program (several -e's allowed, omit programfile)

다른 팁

Perl에서는 "x"연산자를 사용하려고합니다.

간의 차이점에 유의하십시오

"4" x 4

그리고

("4") x 4

전자는 반복 된 문자열을 생성합니다.

"4444"

후자는 반복 된 목록 :

("4", "4", "4", "4")

Perl에서 매우 비슷합니다

print "4" x 4;

fwiw, 그것은 또한입니다 print 4 x 4 Perl에서.

일반적으로, Perl에서는 운영자가 단량성입니다. 당신은 문자열 시맨틱, 숫자 의미론, 비트 시맨틱 등을위한 다른 연산자 세트가 있습니다. 숫자 연산자를 문자열에 적용하면 문자열이 먼저 숫자로 변환되고 요청한 작업 (예 : 곱셈)을 얻을 수 있으며 문자열 연산자를 숫자에 적용하면 문자열로 바뀌고 요청한 작업을 받으십시오 (예 : 반복). Perl은 먼저 연산자와 피연산자의 유형에주의를 기울입니다.

이것은 하나의 연산자 세트를 사용하는 파이썬과 대부분의 다른 언어와 반대이며, 피연산자의 유형은 실제로 어떤 의미를 얻을 수 있는지를 결정합니다. 연산자는 다형성입니다.

지금까지 주어진 모든 답변은 운영자가 x 문자열 리터럴뿐만 아니라 문자열을 작성하는 문자열 변수 또는 표현식에서도 작동합니다.

$msg = "hello ";
print $msg x 2;
print ($msg x 2) x 2;

10 문자 "A"를 인쇄하려면이 작업을 수행 할 수도 있습니다.

perl -e 'print "A" x 10'; echo

출력이 포함 된 예

user@linux:~$ perl -e 'print "A" x 10'; echo
AAAAAAAAAA
user@linux:~$ 
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top