Perl Learning - 11 (hash keys, values, each, exists, delete)

Perl Learning - 11 (hash keys, values, each, exists, delete),第1张

概述Subroutine &keys() and &values() ruturns the keys and values of a hash.#!/usr/bin/perlmy %hash=("a"=>1,"b"=>2,"c"=>3,);my @k=keys %hash;my @v=values %hash;my $count=keys %hash;print "@k\n@v\n$count\n" Subroutine &keys() and &values() ruturns the keys and values of a hash.#!/usr/bin/perlmy %hash=("a"=>1,"b"=>2,"c"=>3,);my @k=keys %hash;my @v=values %hash;my $count=keys %hash;print "@k\n@v\n$count\n";if(%hash){    print "That's not a empty hash\n";}$ ./key_value.plc a b3 1 23That's not a empty hashAlthough key List and value List are not ordered as we think,they order the same way.Between keys() and values() are called,don't change the hash.&each() returns the key_value pairs of a hash.while(($key,$value)=each %hash){    print "$key => $value\n";}The only use of each() in practice is in while() loop.Note while() is a scalar context,when the condition is a List,take the number of elements of List for true/false judgment.If more than 0 element it is true,0 element is false.We can use foreach to get an ordered key_value pair.foreach $key (sort keys %hash){    print "$key => $hash{$key}\n";}&exists() can judge if a key exists in a hash or not.If exists then true,otherwise false.if(exists $hash{"a"}){    print "There is a value for a\n";}else{    print "There is no value for a\n";}&delete() deletes a pair of value and key from hash.It is not the same as to give undef to a value,with value undef the key_value still exists.The value of hash can be inserted in quotes like value of scalar.#!/usr/bin/perlmy %books=(fred=>3,wilma=>1,barney=>0,pebbles=>undef,);foreach $person(sort keys %books){    if($books{$person}){        print "$person has $books{$person} items\n";    }}%ENV stores the environment parameters of the system,we can get the envs:foreach $env(sort keys %ENV){    print "The '$env' is '$ENV{$env}'\n";}Every value we exports in shell will be added to %ENV.$ export aa=AAAAAAAA    # set in shellprint "The name of 'aa' is '$ENV{aa}'\n";The name of 'aa' is 'AAAAAAAAA'Execsices:1. Get names of some users,print their given names.#!/usr/bin/perlmy %names=(    fred => "flintstone",    barney => "rubble",    wilma => "flintstone",    );foreach $surname(sort keys %names){    print "The name of $surname is $names{$surname}\n";}##################################2. input some names,each line one name,Print the times of each name appears.#!/usr/bin/perlwhile(<>){    chomp;    $count{$_}++;}foreach $name(sort keys %count){    if($count{$name}){        print "$name appears $count{$name} times\n";    }}##################################3. Print %ENV each line left align,use length() to get the proper length to align.#!/usr/bin/perlmy $longest=0;foreach(sort keys %ENV){    $longest = length($_) if $longest < length($_);}foreach $env(sort keys %ENV){    printf "%-${longest}s: %s\n",$env,$ENV{$env};} 总结

以上是内存溢出为你收集整理的Perl Learning - 11 (hash keys, values, each, exists, delete)全部内容,希望文章能够帮你解决Perl Learning - 11 (hash keys, values, each, exists, delete)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1293059.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-10
下一篇 2022-06-10

发表评论

登录后才能评论

评论列表(0条)

保存