Latest web development tutorials

Perl matriz

Uma matriz é um valor escalar armazenado lista desordenada de variáveis.

@ O início de uma matriz de variáveis. elementos da matriz de acesso usando$ variable + nome + [índice] para ler o formato, os exemplos são os seguintes:

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

O programa usa o símbolo $ \ escapar, então ele está de saída.

O programa acima, a saída é:

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

Criação de uma matriz

variável de matriz com o início símbolo@, o elemento está entre parênteses também podem ser qwcomeçar a definir matrizes.

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

A segunda matriz usando oqw // operador, que retorna uma lista de strings, os elementos de matriz separadas por espaços.Claro, você também pode usar várias linhas para definir a matriz:

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

Você também pode atribuir um índice para a matriz, como se segue:

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

elementos da matriz de Acesso

elementos da matriz de acesso usando$ variable + nome + [índice] para ler o formato, os exemplos são os seguintes:

@sites = qw/google taobao w3big/;

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

O programa acima, a saída é:

google
taobao
w3big
w3big

O índice de matriz começa a partir de 0, que é de 0 para o primeiro elemento, o segundo elemento é um, e assim por diante.

leitura negativa do reverso, -1 é o primeiro elemento, -2 é o segundo elemento


número de série matriz

Perl fornece uma sequência pode ser na forma de uma matriz de saída no formato deo valor final valor inicial + + .., os exemplos são os seguintes:

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

tamanho da matriz

Contexto é determinado pelo tamanho da matriz escalar de matriz. :

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

Retorna o comprimento da matriz é uma matriz de tamanho físico, em vez do número de elementos, que podem ver os seguintes exemplos:

#!/uer/bin/perl

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

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

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

O programa acima, a saída é:

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

Como pode ser visto a partir da saída de resultados, os elementos de matriz são apenas quatro, mas o tamanho da matriz 51.


Adição e remoção de elementos de matriz

Perl fornece uma série de funções úteis adicionar e remover elementos da matriz.

Se nenhuma experiência de programação antes de você pode perguntar o que é a função, de fato, antes deimprimir o uso, que é uma função de saída.

A tabela a seguir lista as funções comuns de manipulação de matriz:

Não. Tipo e descrição
1 empurrar @ARRAY, LIST

A lista de valores no final da matriz

2 @ARRAY pop

Pop a última matriz de valores e devolve-lo

3 mudar @ARRAY

Matriz pop o primeiro valor e devolve-lo. O valor do índice da matriz são sequencialmente menos um.

4 unshift @ARRAY, LIST

A lista na frente de uma matriz e retorna o número de elementos na nova matriz.

Exemplos

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

O programa acima, a saída é:


matriz de corte

Nós podemos cortar uma matriz e retorna uma nova matriz após o corte:

#!/usr/bin/perl

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

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

print "@sites2\n";

O programa acima, a saída é:

weibo qq facebook

É necessário especificar um índice válido do valor de índice de matriz pode ser negativa após um número positivo, cada valor de índice com vírgulas.

Se o índice é contínua, você pode usar.. para representar o intervalo especificado:

#!/usr/bin/perl

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

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

print "@sites2\n";

O programa acima, a saída é:

weibo qq facebook

Substitua os elementos de matriz

Perl elementos de matriz são usados ​​alternadamente na sintaxe da função splice () é como se segue:

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

Parâmetro Descrição:

  • @ARRAY: Para substituir a matriz.
  • OFFSET: posição inicial.
  • COMPRIMENTO: Substituir o número de elementos.
  • LISTA: Substitua a lista de elementos.

Os exemplos que se seguem estão a começar a substituir o sexto elemento da matriz de cinco elementos:

#!/usr/bin/perl

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

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

O programa acima, a saída é:

替换前 - 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

Converte string em um array

Perl irá converter uma matriz de cadeia utilizando a sintaxe da função split () é a seguinte:

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

Parâmetro Descrição:

  • PADRÃO: separador, espaços predefinidos.
  • EXPR: Especifica o número de cordas.
  • LIMIT: Se você especificar esse parâmetro, o número de elementos na matriz retornada.

Exemplos

#!/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 programa acima, a saída é:

o
com
weibo

A matriz é convertido para uma cadeia

Perl na matriz em uma string usando a sintaxe da função join () é a seguinte:

join EXPR, LIST

Parâmetro Descrição:

  • EXPR: Connector.
  • LISTA: lista ou matriz.

Exemplos

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

O programa acima, a saída é:

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

Classificação de uma matriz

Perl classificar matrizes usando sort () sintaxe da função é a seguinte:

sort [ SUBROUTINE ] LIST

Parâmetro Descrição:

  • Sub-ROTINA: especificar regras.
  • LIMIT: lista ou matriz.

Exemplos

#!/usr/bin/perl

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

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

O programa acima, a saída é:

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

Nota: Classificação de uma matriz é ordenada de acordo com o valor numérico ASCII. Então, é melhor primeiro convertido quando cada elemento da matriz tipo minúsculas antes da separação.


Variáveis ​​especiais: $ [

A variável especial$ [um primeiro índice da matriz, geralmente, 0, se $ [ajustadopara 1, o primeiro valor do índice da matriz é um, o segundo é 2, e assim por diante. Exemplos são os seguintes:

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

O programa acima, a saída é:

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

Geralmente nós não recomendamos o uso da variável especial$ [na nova versão do Perl, a variável é obsoleto.


mesclar matriz

Elemento da matriz é uma vírgula para separar, também podemos usar vírgulas para mesclar array, como segue:

#!/usr/bin/perl

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

print "numbers = @numbers\n";

O programa acima, a saída é:

numbers = 1 3 4 5 6

Você também pode incorporar várias matrizes em uma matriz, e incorporada pela matriz principal:

#!/usr/bin/perl

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

@numbers = (@odd, @even);

print "numbers = @numbers\n";

O programa acima, a saída é:

numbers = 1 3 5 2 4 6

Seleccionar o elemento da lista

A lista pode ser usada como uma matriz usando um valor de índice especificado na lista após o elemento especificado pode ser lido como segue:

#!/usr/bin/perl

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

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

O programa acima, a saída é:

var 的值为 = 1

Da mesma forma, podemos usar na matriz.. para ler o intervalo especificado de elementos:

#!/usr/bin/perl

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

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

O programa acima, a saída é:

list 的值 = 4 3 2