您的位置:首页 > 其它

《Perl语言入门》第四版习题(13)

2009-10-29 17:19 288 查看
1. [10]写一个程序,读入一串数字,将它们按照数字排序,将结果按右对齐的列打印出来。使用下面的数据进行检测:
17 000 04 1.50 3.14159 -10 1.5 4 2001 90210 666
2. [15]写一个程序,将下例hash 数据根据姓(last name)按照大小写无关的字母顺序进行排序,并把结果打印出来。当
last name 相同时,再按照名(first name)排序(不用关心大小写)。因此,第一个输出的的名字是Fred’s,最后一个是
Betty’s。具有相同family name 名字在一起。不要改变数据。输出名字的大小写应当和这里的一样。
my %last_name = qw{
fred flintstoneWilma Flintstone Barney Rubble
betty rubble Bamm-Bamm Rubble PEBBLES FLINTSONE
};
3. [15]写一个程序,查找给定子串在给定字符串中出现的每一个位置,输出子串出现的位置。例如,给定字符串为“This is
a test.”给定子串为“is”,它应当输出2 和5。如果子串是“a”,它应当输出8。如果子串为“t”呢?

1、

#! /usr/bin/env perl -w
use strict;
@_=(17,000,04,1.50,3.14159,-10,1.5,4,2001,90210,666);
@_=sort {$a<=>$b}@_;
for (@_)
{
$_=sprintf "%8s/n",$_;
print ;
}

2、

#! /usr/bin/env perl -w
use strict;
my @keys = sort {
"/L$last_name{$a}" cmp "/L$last_name{$b}" # by last name
or
"/L$a" cmp "/L$b" # by first name
} keys %last_name;
foreach (@keys) {
print "$last_name{$_}, $_/n"; # Rubble,Bamm-Bamm
}

3、

#! /usr/bin/env perl -w
use strict;
my $a="This is a test";
my $b="a";
my $c=-2;
while ($c+1)
{$c=index($a,$b,$c+1);
print "$c/n";}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: