펄 시작하기로그인
펄 시작하기
작가:php.cn  업데이트 시간:2022-04-14 16:05:12

펄 배열


배열은 스칼라 값을 저장하는 순서가 지정되지 않은 목록 변수입니다.

배열 변수는 @로 시작합니다. 배열 요소에 접근하려면 $ + 변수 이름 + [인덱스 값] 형식을 사용하여 읽습니다. 예는 다음과 같습니다.

#!/usr/bin/perl

@hits = (25, 30, 40);             
@names = ("google", "php", "taobao");

print "$hits[0] = $hits[0]\n";
print "$hits[1] = $hits[1]\n";
print "$hits[2] = $hits[2]\n";
print "$names[0] = $names[0]\n";
print "$names[1] = $names[1]\n";
print "$names[2] = $names[2]\n";

프로그램에서 $ 기호는 이스케이프됩니다. 그대로 출력되게 됩니다.

위 프로그램을 실행하면 출력 결과는 다음과 같습니다.

$hits[0] = 25
$hits[1] = 30
$hits[2] = 40
$names[0] = google
$names[1] = php
$names[2] = taobao

배열 만들기

배열 변수는 @ 기호로 시작합니다. 요소는 대괄호 안에 배치되며 qw로 시작하는 배열을 정의할 수도 있습니다.

@array = (1, 2, 'Hello');
@array = qw/这是 一个 数组/;

두 번째 배열은 공백으로 구분된 배열 요소가 있는 문자열 목록을 반환하는 qw// 연산자를 사용합니다. 물론 여러 줄을 사용하여 배열을 정의할 수도 있습니다.

@days = qw/google
taobao
...
php/;

다음과 같이 인덱스별로 배열에 값을 할당할 수도 있습니다.

$array[0] = 'Monday';
...
$array[6] = 'Sunday';

배열 요소에 액세스

배열 요소에 접근하려면 $ + 변수 이름 + [인덱스 값] 형식을 사용하여 읽어옵니다. 예는 다음과 같습니다.

@sites = qw/google taobao php/;

print "$sites[0]\n";
print "$sites[1]\n";
print "$sites[2]\n";
print "$sites[-1]\n";    # 负数,反向读取

위 프로그램을 실행합니다. 출력 결과는 다음과 같습니다.

google
taobao
php
php

array 인덱스 값은 0에서 시작합니다. 이는 첫 번째 요소의 경우 0, 두 번째 요소의 경우 1 등입니다.

음수는 반대 방향에서 읽습니다. -1은 첫 번째 요소, -2는 두 번째 요소


배열 시퀀스 번호

Perl은 배열 형식을 제공합니다. 순서대로 출력할 수 있는 형식은 시작 값 + .. + 끝 값 이며 예시는 다음과 같습니다.

#!/usr/bin/perl

@var_10 = (1..10);
@var_20 = (10..20);
@var_abc = (a..z);

print "@var_10\n";   # 输出 1 到 10
print "@var_20\n";   # 输出 10 到 20
print "@var_abc\n";  # 输出 a 到 z
<p>执行以上程序,输出结果为:</p>
<pre>
1 2 3 4 5 6 7 8 9 10
10 11 12 13 14 15 16 17 18 19 20
a b c d e f g h i j k l m n o p q r s t u v w x y z

배열 크기

배열 크기는 배열의 스칼라 컨텍스트에 따라 결정됩니다. :

@array = (1,2,3);
print "数组大小: ",标量 @array,"\n";

배열 길이는 요소 수가 아닌 배열의 물리적 크기를 반환합니다. 다음 예를 볼 수 있습니다.

#!/uer/bin/perl

@array = (1,2,3);
$array[50] = 4;

$size = @array;
$max_index = $#array;

print "数组大小:  $size\n";
print "最大索引: $max_index\n";

위 프로그램을 실행하면 출력 결과는 다음과 같습니다. 🎜>

数组大小:  51
最大索引: 50

출력에서 볼 수 있듯이 배열 요소는 4개뿐이지만 배열 크기는 51입니다.


배열 요소 추가 및 제거

Perl은 배열 요소를 추가하고 제거하는 데 유용한 몇 가지 기능을 제공합니다.

이전 프로그래밍 경험이 없다면 함수가 무엇인지 물을 수도 있습니다. 사실 이전에 사용했던

print는 출력 함수입니다.

다음 표에는 배열에서 일반적으로 사용되는 연산 함수가 나열되어 있습니다.

< th >유형 및 설명
일련번호
1

push @ARRAY, LIST
序号类型和描述
1push @ARRAY, LIST

将列表的值放到数组的末尾

2pop @ARRAY

弹出数组最后一个值,并返回它

3shift @ARRAY

弹出数组第一个值,并返回它。数组的索引值也依次减一。

4unshift @ARRAY, LIST

将列表放在数组前面,并返回新数组的元素个数。

<🎜>목록의 값을 끝까지 밀어 넣습니다. 배열< 🎜>
2<🎜>pop @ARRAY<🎜><🎜>배열의 마지막 값을 팝하고 반환합니다. <🎜>
3<🎜>shift @ARRAY<🎜><🎜>배열의 첫 번째 값을 팝하고 반환합니다. 배열의 인덱스 값도 1씩 감소합니다. <🎜>
4<🎜>unshift @ARRAY, LIST<🎜><🎜>목록을 배열 앞에 놓고 새로운 배열은 요소의 수입니다. <🎜>

Instance

#!/usr/bin/perl

# 创建一个简单是数组
@sites = ("google","php","taobao");
print "1. \@sites  = @sites\n";

# 在数组结尾添加一个元素
push(@sites, "baidu");
print "2. \@sites  = @sites\n";

# 在数组开头添加一个元素
unshift(@sites, "weibo");
print "3. \@sites  = @sites\n";

# 删除数组末尾的元素
pop(@sites);
print "4. \@sites  = @sites\n";

# 移除数组开头的元素
shift(@sites);
print "5. \@sites  = @sites\n";

는 위 프로그램을 실행하고 출력 결과는 다음과 같습니다.


Cut array

배열을 만들고 절단 후 새 배열을 반환합니다.

#!/usr/bin/perl

@sites = qw/google taobao php weibo qq facebook 网易/;

@sites2 = @sites[3,4,5];

print "@sites2\n";

위 프로그램을 실행하면 출력 결과는 다음과 같습니다.

weibo qq facebook

배열 인덱스는 유효한 인덱스 값을 지정해야 하며 이는 양수일 수 있습니다. 숫자 뒤에 음수가 옵니다. 각 인덱스 값은 쉼표로 구분됩니다.

연속 인덱스인 경우 ..을 사용하여 지정된 범위를 나타낼 수 있습니다.

#!/usr/bin/perl

@sites = qw/google taobao php weibo qq facebook 网易/;

@sites2 = @sites[3..5];

print "@sites2\n";

위 프로그램을 실행하면 출력 결과는 다음과 같습니다.

weibo qq facebook

배열 요소 바꾸기

splice() 함수는 Perl에서 배열 요소를 바꾸는 데 사용됩니다. 구문 형식은 다음과 같습니다.

splice @ARRAY, OFFSET [ , LENGTH [ , LIST ] ]

매개변수 설명:

  • @ARRAY : 교체할 배열입니다.

  • OFFSET: 시작 위치.

  • LENGTH: 교체할 요소 수입니다.

  • LIST: 교체 요소 목록입니다.

다음 예에서는 배열의 6번째 요소부터 시작하여 5개 요소를 바꿉니다.

#!/usr/bin/perl

@nums = (1..20);
print "替换前 - @nums\n";

splice(@nums, 5, 5, 21..25); 
print "替换后 - @nums\n";

위 프로그램을 실행하면 출력 결과는 다음과 같습니다.

替换前 - 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
替换后 - 1 2 3 4 5 21 22 23 24 25 11 12 13 14 15 16 17 18 19 20

문자열을 배열로 변환

Perl에서 문자열을 배열로 변환하려면 구문 형식은 다음과 같습니다.

split [ PATTERN [ , EXPR [ , LIMIT ] ] ]

매개변수 설명:

  • 패턴: 구분 기호, 기본값은 공백입니다.

  • EXPR: 문자열 수를 지정합니다.

  • LIMIT: 이 매개변수를 지정하면 배열의 요소 수가 반환됩니다.

Instance

#!/usr/bin/perl

# 定义字符串
$var_test = "php";
$var_string = "www-php-com";
$var_names = "google,taobao,php,weibo";

# 字符串转为数组
@test = split('', $var_test);
@string = split('-', $var_string);
@names  = split(',', $var_names);

print "$test[3]\n";  # 输出 com
print "$string[2]\n";  # 输出 com
print "$names[3]\n";   # 输出 weibo

는 위 프로그램을 실행하고 출력 결과는 다음과 같습니다.

o
com
weibo

배열을 문자열로 변환

Perl에서는 Join() 함수를 사용하여 배열을 문자열로 변환합니다. 구문 형식은 다음과 같습니다.

join EXPR, LIST

매개변수 설명:

  • EXPR: 커넥터.

  • LIST: 목록 또는 배열입니다.

Instance

#!/usr/bin/perl

# 定义字符串
$var_string = "www-php-com";
$var_names = "google,taobao,php,weibo";

# 字符串转为数组
@string = split('-', $var_string);
@names  = split(',', $var_names);


# 数组转为字符串
$string1 = join( '-', @string );
$string2 = join( ',', @names );

print "$string1\n";
print "$string2\n";

는 위 프로그램을 실행하고, 출력 결과는 다음과 같습니다.

www-php-com
google,taobao,php,weibo

Array sorting

Array sorting Perl에서 sort() 함수를 사용하면 구문 형식은 다음과 같습니다.

sort [ SUBROUTINE ] LIST

매개변수 설명:

  • SUBROUTINE: 규칙을 지정합니다.

  • 제한: ​​목록 또는 배열.

Instance

#!/usr/bin/perl

# 定义数组
@sites = qw(google taobao php facebook);
print "排序前: @sites\n";

# 对数组进行排序
@sites = sort(@sites);
print "排序前: @sites\n";

는 위 프로그램을 실행하고 출력 결과는 다음과 같습니다.

排序前: google taobao php facebook
排序前: facebook google php taobao

참고: 배열 정렬은 ASCII 숫자를 기반으로 합니다. 가치. 따라서 배열을 정렬할 때는 정렬하기 전에 각 요소를 소문자로 변환하는 것이 가장 좋습니다.


특수 변수: $[

특수 변수 $[는 배열의 첫 번째 인덱스 값을 나타내며 일반적으로 0입니다. $[이 1로 설정된 경우 배열의 첫 번째 인덱스 값은 1, 두 번째 인덱스 값은 2 등입니다. 예는 다음과 같습니다.

#!/usr/bin/perl

# 定义数组
@sites = qw(google taobao php facebook);
print "网站: @sites\n";

# 设置数组的第一个索引为 1
$[ = 1;

print "\@sites[1]: $sites[1]\n";
print "\@sites[2]: $sites[2]\n";

위 프로그램을 실행하면 출력 결과는 다음과 같습니다.

网站: google taobao php facebook
@sites[1]: google
@sites[2]: taobao

일반적으로 특수 변수 $[< 사용을 권장하지 않습니다. 🎜>. Perl의 새 버전에서는 이 변수가 더 이상 사용되지 않습니다.


배열 병합

배열의 요소는 아래와 같이 쉼표를 사용하여 배열을 병합할 수도 있습니다.

#!/usr/bin/perl

@numbers = (1,3,(4,5,6));

print "numbers = @numbers\n";

는 위 프로그램을 실행하고 출력 결과는 다음과 같습니다.

numbers = 1 3 4 5 6

또한 배열에 여러 배열을 포함하고 기본 배열로 병합할 수도 있습니다.

#!/usr/bin/perl

@odd = (1,3,5);
@even = (2, 4, 6);

@numbers = (@odd, @even);

print "numbers = @numbers\n";

는 위 프로그램을 실행합니다. , 출력 결과는 다음과 같습니다. :

numbers = 1 3 5 2 4 6

목록에서 요소 선택

목록은 배열로 사용할 수 있으며, 인덱스 값을 지정하여 지정된 요소를 읽을 수 있습니다. 목록 뒤에는 다음과 같습니다.

#!/usr/bin/perl

$var = (5,4,3,2,1)[4];

print "var 的值为 = $var\n"

위 프로그램을 실행하면 출력 결과는 다음과 같습니다.

var 的值为 = 1

마찬가지로 배열에서 ..를 사용하여 요소를 읽을 수 있습니다. 지정된 범위에서:

#!/usr/bin/perl

@list = (5,4,3,2,1)[1..3];

print "list 的值 = @list\n";

위 프로그램을 실행하면 출력 결과는 다음과 같습니다:

list 的值 = 4 3 2

PHP 중국어 웹사이트