用PERL做一个基本程序

来源:百度知道 编辑:UC知道 时间:2024/06/15 13:29:52
编程要求
§1 程序中必须同时使用标量、数组和散列数据类型;
§2 程序长度必须大于50个简单语句;
§3 程序中必须打开并关闭一个文件;
§4 必须通过程序把输出结果存储在一个文件中;
§5 程序中必须使用一个正则表达式;
§6 至少使用一个循环语句;
§7 至少使用一个子程序;
§8 建议程序中使用“引用”;
§9 建议使用面向对象技术编程;
§10 建议使用CPAN中的模块;
希望高手帮忙解答!!!!!!!!!!!!
要有§3 程序源码
§4 输入数据
§5 输出结果

这是对一个内存有行星名称星座亮度等内容的文件进行编辑的程序。
第一段是用来查询一些名称对应亮度的。第二段是统计同一星座星数的,可以比较容易改成调用子程序的。第三段是对文件编辑后存入文件。不知道合不合要求

#!/usr/bin/perl -w
use strict;

open F, "star25.txt" or die "Can't open file";
my @lines = <F>;
close F;

chomp @lines;
s/#.*// foreach @lines;

my (%sname, %spectrum, @fields);
foreach (grep !/^$/, @lines) {
@fields = split /:/, $_;
next if @fields < 6;
$sname{$fields[0]} = $fields[1];
$spectrum{$fields[0]} = $fields[5];
}

print exists $sname{$_} ?
"$_: Scientific name is $sname{$_}, Spectrum is $spectrum{$_}\n" :
"$_: Not find!\n"
foreach ('Pole star', 'Castor', 'Altair', 'Hadar');

###################
my $c;
foreach $c ('Ori', 'Cen', 'Cru') {
print "Number of starts in $c is ",
scalar(grep {