第一章简介
第二章表量数据
第三章列表与数组
第四章子程序
第五章输入与输出
文件句柄就是程序里代表进程(process)与外界之间从输入输出联系的名称。
1写一个功能跟cat相似的程序,但将各行内容反序后输出.
Print reverse<>
2写一个程序,要求用户分行键入各个字符串,然后以20个字符宽、向右对齐的方式输出每个字符串。为了确定输出结果在适当的字段中,请一并输出由数字组成的“标尺行”。
print “Enter somelines,then press Ctrl-D:\n”;
chomp(my @lines=<STDIN>);
print“1234567890”×7,“12345\n”;#标尺行,到第75个字符的地方
foreach(@lines){
printf“%20s\n”,$_;#交由%20s转换后输出
}
3修改上一个程序,让用户自行选择字符宽度,因此在键入30的时候,hello、good-bye(在不同行上)应该会向右对齐到第30个字符。根据用户键入的宽度,自动调整标尺行的宽度。
print“What columwitdth would you like?”;
chomp(my $width=<STDIN>);
print “Enter somelines,then press Ctrl-D:\n”;#长度按需变化的标尺行
foreach(@lines){
printf“%${width}s\n”,$_;
}
第六章哈希
1编程读入用户指定的名字并且汇报相应的姓。
my %last_name =qw{
fred flinstone
barney rubble
wilma flintstone
};
print “Pleaseenter a first name:”;
chomp(my $name=<STDIN>);
print “That's$name $last_name{$name}.\n”;
2编程读取一系列单词,每行一个,指导文件中止,然后打印一份列出每个单词出现次数的列表。
my(@words,%count,$word);#申明变量
chomp(@words=<STDIN>);
foreach $word(@words){
$count{$word}+=1;
}
foreach $word (keys%count){
print word was seen$count{$word}times.\n”;
}
3 编程输出%ENV哈希中所有的键值对,输出按照ASCII编码排序,分两列打印。设法让打印结果纵向对齐。注意length函数可以帮助确定第一列的宽度。测试完毕后加入更多新变量再次验证程序的输出正确无误。
My $longest =0;
foreach my $key(keys %ENV){
$longest=$key_length if $key_length>$longest;
}
foreach my $key(sort keys %ENV){#依次处理hash,对键值进行排序
printf“%-${longest}s %s\n”,$key,$key,$ENV{key};
}
第七章漫游正则表达
1从输入中读取数据,遇到包含fred字符串的行就打印出该行。
While(<>){
if (/fred/){
print;
}
}
6写程序,输出在输入数据中同时出现wilma以及fred的每一行
while(<>){
if(/wilma/){
if(/fred/){
print;
}
}
}
第八章用正则表达式进行匹配
1 利用模式测试程序,写个模式,使它能匹配match这个字符串。
befor<match>after