인덱스의 첫 번째 요소에 Perl 배열

에서는 Perl 프로그래밍 언어에서와 같이,다른 많은 프로그래밍 언어 에서 첫 번째 요소는 배열 색인 0. 하지만 가능성이 있다(다 하여 사용)하여 인덱스의 첫 번째 요소는 1 (또는 다른 번호).

여기에는 예제 코드:

▶ Run
#!/usr/bin/perl

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

print $arr[1];

프로그램에 텍스트가 표시됩니다 two. 우리는 배열 요소와 색인 1 그리고 이 두 번째 요소의 배열입니다.

  • index 0 은 첫 번째 배열의 요소에 우리를 들어,문자열 'one'
  • index 1 는 두 번째 요소의 배열을,우리를 들어,문자열 'two'
  • index 2 —은 세 번째 요소의 배열을,우리를 들어,문자열 'three'

학습자 프로그램이 특별하지만 이것은 표준입니다. 0 는 인덱스의 첫 번째 배열의 요소에서 거의 모든 프로그래밍 언어입니다.

$[

의 제작자 Perl 프로그래밍 언어를 만들고 싶었어는 같은 프로그래머 결정을 위해 자신이 원하는 것을 사용하는 언어(의 원리 TIMTOWTDI), 따라서,언어를 변경하는 방법은 인덱스의 첫 번째 요소입니다. 만약 누군가가 불편 사용 0 으로 인덱스의 첫 번째 요소는 그 자체라고 할 수 있습니다 무엇이 인덱스의 첫 번째 요소는 것입 1.

여기에는 예제 코드:

#!/usr/bin/perl

$[ = 1;

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

print $arr[1];

의 값을 설정 사용자 지정변수 단위당 $[ = 1; —말이 지금 인덱스의 첫 번째 요소는 것입 1,지 0. 프로그램에 텍스트가 표시됩니다 one.

하지만 그것은 빠르게 되었다는 이 기회를 단순화되지 않지만,오히려 복잡하게 작업 ID 입니다. 여기서 당신은 프로그램을 열고하기 전에 뭔가를 변경하려면 먼저 이해해야 는 방법은 작업으로 배열입니다.

그래서 펄 5.12 를 사용하여 변수 $[ 도 모양 경고: Use of assignment to $[ is deprecated at script.pl line 3..

Perl 버전 5.12, 5.14, 5.16, 5.18, 5.20, 5.22. 5.24, 5.26 발행이 정확하게 이 경고입니다. 5.28 었을 경고 Use of assignment to $[ is deprecated, and will be fatal in Perl 5.30 at script.pl line 3., 와 Perl5.30 제공 중단을 변경하는 기능을 인덱스의 첫 번째 요소입니다. 을 때 당신이 그것을보십시오 프로그램이 실패하는 오류를 텍스트 Assigning non-zero to $[ is no longer possible at script.pl line 3..

그래서 최신 버전의 펄 첫 번째 배열의 요소에 항상 있는 인덱스 0. Perl 에서는 이전 버전을 할 수있는 기회를 가질 수 있는 또 다른 숫자 인덱스의 첫 번째 요소이지만,이 중 가장 좋은 기회 사용하지 않습니다.

공식적인 문서

여기에 조각의 출력 perldoc perlvar 프로 변 $[:

    $[      This variable stores the index of the first element in an array,
            and of the first character in a substring. The default is 0, but
            you could theoretically set it to 1 to make Perl behave more
            like awk (or Fortran) when subscripting and when evaluating the
            index() and substr() functions.

            As of release 5 of Perl, assignment to $[ is treated as a
            compiler directive, and cannot influence the behavior of any
            other file. (That's why you can only assign compile-time
            constants to it.) Its use is highly discouraged.

            Prior to Perl v5.10.0, assignment to $[ could be seen from outer
            lexical scopes in the same file, unlike other compile-time
            directives (such as strict). Using local() on it would bind its
            value strictly to a lexical block. Now it is always lexically
            scoped.

            As of Perl v5.16.0, it is implemented by the arybase module.

            As of Perl v5.30.0, or under "use v5.16", or "no feature
            "array_base"", $[ no longer has any effect, and always contains
            0. Assigning 0 to it is permitted, but any other value will
            produce an error.

            Mnemonic: [ begins subscripts.

            Deprecated in Perl v5.12.0.

다른 기사