zoukankan      html  css  js  c++  java
  • Learning perl 第6章习题

    原文发表在网易博客 2010-11-19 13:10:11

    第1题根据输入的人名打印其姓氏

    #!perl -w
    #getfamilyname
    use strict;
    my %nameTable=("fred"=>"flintstone","barney"=>"rubble","wilma"=>"flintstone");
    print "input person name,and the program will print his familyname.\n";
    my $personName=<STDIN>;
    chomp($personName);
    if(exists $nameTable{$personName}){
    print "peron ${personName}'s familyname is $nameTable{$personName}\n";
    }else{
      print "no such person\n";
      }
    第2题打印输入的每个单词出现的个数

    #!perl -w
    use strict;
    my %wordCounter;
    my $word;
    #while(chomp($word=<STDIN>))会报错说使用了一个未初始化的$word值
    while($word=<STDIN>){
    chomp($word);
      if(exists $wordCounter{$word}){
       $wordCounter{$word}+=1;
      }else{
       $wordCounter{$word}=1;
       }
    }
    my $key;
    my $value;
    print "print wordCounter without order.\n";
    while(($key,$value)= each %wordCounter){
    print "$key,\t$value\n";
    }
    print "print wordCounter with ascii order\n";
    my @orderdkeys=sort keys %wordCounter;
    foreach(@orderdkeys){
    print "$_,\t$wordCounter{$_}\n";
    }

    第3题打印系统的环境变量

    #!perl -w
    use strict;
    print "print system ENV with ascii orders\n";
    my @keys=sort(keys %ENV);
    my $key_len=0;
    foreach(@keys){
    if(length($_)> $key_len){
      #length是常规函数,因此调用时不需要使用&length($_)的方式.
      $key_len=length($_);
      }
    }
    my $format="%-${key_len}s\t%s\n";
    foreach(@keys){
    printf $format,"$_","$ENV{$_}";
    }

  • 相关阅读:
    设计模式之设计原则
    把二叉树打印成多行
    快速排序的递归遍历和非递归遍历
    二叉树的非递归遍历
    约瑟夫环问题
    strcpy strcat strcmp memcpy函数的自己实现
    【解题模板】一些很基础的板子
    【笔记】取模运算的用法
    【OJ技巧】DSACPP pa-book中的一些提示
    【编程语言】Java基础进阶——面向对象部分
  • 原文地址:https://www.cnblogs.com/leipei2352/p/2057473.html
Copyright © 2011-2022 走看看