Latest web development tutorials

펄 배열

배열 변수의 정렬되지 않은 목록을 저장 스칼라 값입니다.

@ 변수들의 어레이의 시작. 다음과 같은 형식을 읽을$ 변수 + 이름 + [인덱스]를 사용하여 액세스 배열 요소는, 예는 다음과 같습니다

#!/usr/bin/perl

@hits = (25, 30, 40);             
@names = ("google", "w3big", "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] = w3big
$names[2] = taobao

배열 만들기

@ 기호의 시작과 배열 변수는 요소는 QW배열 정의를 시작 할 수 있습니다 브라켓입니다.

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

문자열 목록을 반환QW // 연산자를 사용하여 두 번째 배열, 배열 요소는 공백으로 구분.물론, 당신은 또한 배열을 정의하는 여러 줄을 사용할 수 있습니다 :

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

또한 다음과 같이, 배열에 인덱스를 할당 할 수 있습니다 :

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

액세스 어레이 요소

다음과 같은 형식을 읽을$ 변수 + 이름 + [인덱스]를 사용하여 액세스 배열 요소는, 예는 다음과 같습니다

@sites = qw/google taobao w3big/;

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

위의 프로그램은 출력은 다음과 같습니다

google
taobao
w3big
w3big

배열 인덱스의 첫번째 요소가 0 인 0에서 시작하고, 두번째 엘리먼트는 1입니다.

역에서 부정적인 읽기, -1 첫 번째 요소는, -2 두 번째 요소입니다


배열 일련 번호

펄 다음 시퀀스+ + .. 예는 시작 값 최종 값의형식으로 출력의 어레이의 형태 일 수 제공

#!/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

결과 출력에서 ​​알 수있는 바와 같이, 어레이 요소는 네하지만 어레이 (51)의 크기이다.


배열 요소 추가 및 제거

펄 추가하고 배열 요소를 제거하는 유용한 기능을 제공한다.

우리가 사용을인쇄하기 전에, 사실, 기능이 무엇인지 요청할 수 있습니다 전에 어떤 프로그래밍 경험이있는 경우, 그 출력 기능입니다.

다음 표는 일반적인 배열을 조작하는 기능을 나열합니다 :

아니오. 유형 및 설명
(1) @ARRAY, LIST를 밀어

어레이의 단부에 값 목록

팝 @ARRAY

마지막 값의 배열을 팝하고 반환

3 이동 @ARRAY

배열은 첫 번째 값을 팝하고 반환합니다. 배열의 인덱스 값을 순차적으로 마이너스 하나이다.

4 취소] @ARRAY, LIST

배열 앞의리스트와 새로운 배열의 요소의 수를 반환한다.

#!/usr/bin/perl

# 创建一个简单是数组
@sites = ("google","w3big","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";

위의 프로그램은 출력은 다음과 같습니다


절단 배열

우리는 배열을 절단하고, 절단 후 새 배열을 반환 할 수 있습니다 :

#!/usr/bin/perl

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

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

print "@sites2\n";

위의 프로그램은 출력은 다음과 같습니다

weibo qq facebook

당신은 배열 인덱스 값의 유효한 인덱스가 양수, 쉼표로 각 인덱스 값 뒤에 음수가 될 수 지정해야합니다.

인덱스가 연속 인 경우에는 지정된 범위를 나타내는.. 사용할 수 있습니다 :

#!/usr/bin/perl

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

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

print "@sites2\n";

위의 프로그램은 출력은 다음과 같습니다

weibo qq facebook

배열 요소를 교체

다음 펄 어레이 요소는 접합부 () 함수의 신택스에서 혼용되고있다 :

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

매개 변수 설명 :

  • @ARRAY : 배열을 교체하십시오.
  • OFFSET : 시작 위치.
  • 길이 : 요소의 수를 교체합니다.
  • LIST : 요소 목록을 교체합니다.

하기 실시 예는 다섯 요소들의 어레이의 6 요소를 대체하기 시작하고있다 :

#!/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

배열로 문자열 변환

펄은 다음과 같이 분할 () 함수 구문은 사용하여 문자열 배열을 변환합니다 :

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

매개 변수 설명 :

  • PATTERN : 구분, 기본 공간.
  • EXPR : 문자열의 수를 지정합니다.
  • LIMIT :이 매개 변수를 지정하는 경우, 배열의 요소 수를 반환.

#!/usr/bin/perl

# 定义字符串
$var_test = "w3big";
$var_string = "www-w3big-com";
$var_names = "google,taobao,w3big,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

이 배열은 문자열로 변환

다음과 같이 조인 () 함수 구문을 사용하여 문자열 배열의 펄은 다음과 같습니다

join EXPR, LIST

매개 변수 설명 :

  • EXPR : 커넥터.
  • 리스트 : 목록 또는 배열입니다.

#!/usr/bin/perl

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

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


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

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

위의 프로그램은 출력은 다음과 같습니다

www-w3big-com
google,taobao,w3big,weibo

배열을 정렬

다음과 같이 분류하여 펄 정렬 배열 () 함수 구문은 다음과 같습니다

sort [ SUBROUTINE ] LIST

매개 변수 설명 :

  • 서브 루틴 : 규칙을 지정합니다.
  • LIMIT : 목록 또는 배열입니다.

#!/usr/bin/perl

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

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

위의 프로그램은 출력은 다음과 같습니다

排序前: google taobao w3big facebook
排序前: facebook google w3big taobao

주 : 배열을 정렬하는 것은 ASCII 숫자 값에 따라 정렬됩니다. 그래서 우리는 더 나은 먼저 배열의 각 요소 정렬 정렬 전에 소문자 때 변환했다.


특수 변수 : $ [

특별한 변수$ [우리 $ [1로 설정하면어레이의 첫번째 인덱스 통상 0는 어레이의 첫번째 인덱스 값은 제는 2, 및 1이다. 다음 예는 다음과 같다 :

#!/usr/bin/perl

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

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

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

위의 프로그램은 출력은 다음과 같습니다

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

일반적으로 우리가 펄의 새버전에서 특수 변수 $을 [사용하지않는 것이 좋습니다, 변수는 사용되지 않습니다.


배열을 병합

다음과 같이 배열의 요소는, 우리는 또한 배열을 병합 쉼표를 사용하여 구분하는 쉼표 :

#!/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