O melhor tutorial Perl matriz em 2024. Neste tutorial você pode aprender Criação de uma matriz,elementos da matriz de Acesso,número de série matriz,tamanho da matriz,Adição e remoção de elementos de matriz,matriz de corte,Substitua os elementos de matriz,Converte string em um array,A matriz é convertido para uma cadeia,Classificação de uma matriz,Variáveis especiais: $ [,mesclar matriz,Seleccionar o elemento da lista,
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
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 pt. w3big/;
Você também pode atribuir um índice para a matriz, como se segue:
$array[0] = 'Monday'; pt. $array[6] = 'Sunday';
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
Perl fornece uma sequência pode ser na forma de uma matriz de saída no formato deo valor final valor inicial + + pt, os exemplos são os seguintes:
#!/usr/bin/perl @var_10 = (1pt10); @var_20 = (10pt20); @var_abc = (aptz); 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
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.
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. |
#!/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 é:
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 usarpt para representar o intervalo especificado:
#!/usr/bin/perl @sites = qw/google taobao w3big weibo qq facebook 网易/; @sites2 = @sites[3pt5]; print "@sites2\n";
O programa acima, a saída é:
weibo qq facebook
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:
Os exemplos que se seguem estão a começar a substituir o sexto elemento da matriz de cinco elementos:
#!/usr/bin/perl @nums = (1pt20); print "替换前 - @nums\n"; splice(@nums, 5, 5, 21pt25); 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
Perl irá converter uma matriz de cadeia utilizando a sintaxe da função split () é a seguinte:
split [ PATTERN [ , EXPR [ , LIMIT ] ] ]
Parâmetro Descrição:
#!/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
Perl na matriz em uma string usando a sintaxe da função join () é a seguinte:
join EXPR, LIST
Parâmetro Descrição:
#!/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
Perl classificar matrizes usando sort () sintaxe da função é a seguinte:
sort [ SUBROUTINE ] LIST
Parâmetro Descrição:
#!/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.
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.
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
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 matrizpt para ler o intervalo especificado de elementos:
#!/usr/bin/perl @list = (5,4,3,2,1)[1pt3]; print "list 的值 = @list\n";
O programa acima, a saída é:
list 的值 = 4 3 2