기능 length() 에서는 Perl

에서는 Perl 프로그래밍 언어가 내장된 기능 length(). 이 기능은 반환한 문자열의 길이는 인수로 전달하는 기능입니다.

예를 들어 다음과 같습니다.

▶ Run
#!/usr/bin/perl

print( length('Hello') );

이 프로그램이 표시됩니다 수 5. 에서 선 'Hello' 오 문자입니다.

인수

my $length = length($str);

는 경우 기능 length() 을 통과하는 하나의 인수 기능을 작동할 것입니다.

전달하지 않는 경우는 모든 인수,함수와 함께 작동하 는 기본 변수 $_. 여기에 예를 들어(프로그램 번호가 표시됩 4):

▶ Run
#!/usr/bin/perl

$_ = 'asdf';

print( length() );

는 경우 기능 length() 전달 하나 이상의 인수,그것은 오류가:

Too many arguments for length at script.pl line 3, near "'a') "
Execution of script.pl aborted due to compilation errors.

반환 값

기능 length() 을 반환하거나 undef또는 양의 정수입니다. 이 반환 undef 는 경우에만 했다 undef.

여기에 세 가지 프로그램,그들 각각의 length()undef. 그들은 모두 동일합니다.

▶ Run
#!/usr/bin/perl

use Data::Dumper;

warn Dumper length(undef);
▶ Run
#!/usr/bin/perl

use Data::Dumper;

$_ = undef;

warn Dumper length();
▶ Run
#!/usr/bin/perl

use Data::Dumper;

warn Dumper length();

유니코드

기능 length() 문자 수를 반환합에서 문자열이 아닌 바이트 수지 그것은 필요한 행 플래그와 함께 있는 것을 말한 문자열은 유니코드입니다. 이 플래그가 자동으로 나타나고 문자열에서 설명하는 코드는 경우 프로그램 가 있 use utf8;. 여기에는 프로그램 번호를 반환합 7 올바른 번호 문자에서 이 문자열:

▶ Run
#!/usr/bin/perl

use utf8;

print( length('АБВГДЕЁ') );

그러나 만약 프로그램이 없 use utf8;,문자열에 정의된 프로그램 으로 간주의 순서를 바이트를,그리고 기능 length() 바이트 수를 반환합니다. 여기에 사용하는 프로그램과 동일한 문자열에 이전 예를 들어,하지만 이 프로그램 번호가 표시됩 14 (에서 선 7 문자,각 문자는 두 바이트):

▶ Run
#!/usr/bin/perl

print( length('АБВГДЕЁ') );

# 예

여기에는 프로그램의 몇 가지 예가 나와 있습니다 기능 length():

▶ Run
#!/usr/bin/perl

use feature qw(say);

my $arr = [1, 2, 3];
my $hash = { a => 1 };
my $sub = sub { return 1 };

foreach my $var ('12', 12, 0xff, 0b1000, 'S', 'String', $arr, $hash, $sub ) {
    say $var . ' - ' . length($var);
}

출력에서 이 프로그램:

12 - 2
12 - 2
255 - 3
8 - 1
S - 1
String - 6
ARRAY(0x561a04e48578) - 21
HASH(0x561a04e60cf8) - 20
CODE(0x561a04e61370) - 20

기능 length() 같은 값을 반환합니다 라인 '12' 및 수 12 (수 2). 진수 숫자 0xff255 십진수 표기와 length() 번호를 반환합 3. 동일하게 작동합 및 수를 기록에서 이진수 표기.

기능 length() 할 수 없습을 계산하는데 사용될 수가 배열의 요소 또는 해시입니다. 이렇게 하는 방법은 다음에 설명되어 페이지:

에 대한되는 함수입고 HASHREF 기능 length() 의 문자 수를 반환하는 문자열에 'ARRAY(0x561a04e48578)'.

공식적인 문서

여기에 출력하는 명령의 perldoc -f length:

       length EXPR
       length  Returns the length in characters of the value of EXPR.  If EXPR
               is omitted, returns the length of $_.  If EXPR is undefined,
               returns "undef".

               This function cannot be used on an entire array or hash to find
               out how many elements these have.  For that, use "scalar
               @array" and "scalar keys %hash", respectively.

               Like all Perl character operations, length() normally deals in
               logical characters, not physical bytes.  For how many bytes a
               string encoded as UTF-8 would take up, use
               "length(Encode::encode_utf8(EXPR))" (you'll have to "use
               Encode" first).  See Encode and perlunicode.

관련 주제

다른 기사