Nice programing

Perl에서 문자열을 N 번 반복하려면 어떻게해야합니까?

nicepro 2020. 12. 26. 16:37
반응형

Perl에서 문자열을 N 번 반복하려면 어떻게해야합니까?


파이썬에서 이렇게하면 :

print "4" * 4

나는 얻다

> "4444"

Perl에서는

> 16

Perl에서 전자를 쉽게 수행 할 수있는 방법이 있습니까?


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

x 연산자는 perldoc perlop에 문서화되어 있습니다. 여기서 바이너리는 비트로 구성되지 않은 두 개의 인수를 취하는 연산자를 의미합니다.

이진 "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
사용법 : perl [switches] [-] [programfile] [arguments]
  
  -e 프로그램 한 줄의 프로그램 (여러 개의 -e 허용, 프로그램 파일 생략)

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은 먼저 연산자에주의를 기울이고 피연산자의 유형은 두 번째로만주의를 기울입니다.

이것은 하나의 연산자 집합을 사용하고 피연산자의 유형에 따라 실제로 얻을 의미를 결정하는 Python 및 대부분의 다른 언어와 반대입니다. 연산자는 다형성입니다.


지금까지 주어진 모든 답변은 연산자 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:~$ 

참조 URL : https://stackoverflow.com/questions/277485/how-can-i-repeat-a-string-n-times-in-perl

반응형