17.1 写一个程序,从文件中读取一组字符串(每行一个),然后让用户键入模式以便进行字符串匹配。
对于每个模式,程序应该说明文件里共有多少字符串匹配成功,分别是哪些字符串。
对于所键入的每个新模式,不应重新读取文件,应该把这些字符串存放在内存里。文件名可以直接写在程序里。

use 5.016;
use autodie; my $file_name = 'sample.txt'; open my $fh ,'<',$file_name; chomp (my @strings=<$fh>); while() {
say 'Please enter a pattern:';
chomp(my $pattern =<STDIN>) ; last if $pattern =~ /\A\s*\Z/; my @matches = eval {grep /$pattern/,@strings}; if($@) {
print "Error: $@"; } else {
my $count = @matches;
say "There where $count matching strings:",
map "$_\n", @matches;; } }

17.2 写一个程序,报告当前目录下所有文件的最后访问时间和最后修改时间,单位为秒,用stat取得文件的时间戳信息,利用切片的写法
提取这两个元素。

use 5.016;
use autodie; foreach (glob('*')) {
my($atime,$mtime) = (stat)[,];
printf "%-20s %10d %10d\n",$_,$atime,$mtime;
}

17.3 修改上题程序,把时间格式改为YYYY-MM-DD的形式。用map逐个输出,并用localtime通过列表切片提取纪年时间的年,月,日子段。

use 5.016;
use autodie; foreach my $file ( glob('*')) {
my($atime,$mtime) = map {
my($year,$month,$day) = (localtime($_))[,,];
$year+=;$month +=;
sprintf "%4d-%02d-%02d",$year,$month,$day;
} (stat $file)[,]; printf "%-20s %10d %10d\n",$file,$atime,$mtime;
}

第17章课后题(高级Perl技巧)的更多相关文章

  1. Java程序设计(2021春)——第一章课后题(选择题+编程题)答案与详解

    Java程序设计(2021春)--第一章课后题(选择题+编程题)答案与详解 目录 Java程序设计(2021春)--第一章课后题(选择题+编程题)答案与详解 第一章选择题 1.1 Java与面向对象程 ...

  2. Java程序设计(2021春)——第二章课后题(选择题+编程题)答案与详解

    Java程序设计(2021春)--第二章课后题(选择题+编程题)答案与详解 目录 Java程序设计(2021春)--第二章课后题(选择题+编程题)答案与详解 第二章选择题 2.1 面向对象方法的特性 ...

  3. python 核心编程第六章课后题自己做的答案

    6–6. 字符串.创建一个 string.strip()的替代函数:接受一个字符串,去掉它前面和后面的 空格(如果使用 string.*strip()函数那本练习就没有意义了) 'Take a str ...

  4. c++ primer plus 第七章 课后题答案

    #include <iostream> using namespace std; double HAR_AVG(double, double); void TEST(bool); int ...

  5. c++ primer plus 第六章 课后题答案

    #include <iostream> #include <cctype> using namespace std; int main() { char in_put; do ...

  6. c++ primer plus 第五章 课后题答案

    #include <iostream> using namespace std; int main() { ; cout << "Please enter two n ...

  7. c++ primer plus 第四章 课后题答案

    #include<iostream> #include<string> using namespace std; int main() { string first_name; ...

  8. c++ primer plus 第三章 课后题答案

    #include<iostream> using namespace std; int main() { ; int shen_gao; cout <<"Please ...

  9. c++ primer plus 第二章 课后题答案

    #include<iostream> using namespace std; int main() { cout << "My name is Jiantong C ...

随机推荐

  1. Web Services的相关名词解释:WSDL与SOAP

    在对Web Services进行性能测试时,接触到最多的两个名词就是WSDL和SOAP.利用LoadRunner对Web Services进行调用的时候,也存在两种常用方法,即基于WSDL的[Add ...

  2. [IoLanguage]Io Tutorial[转]

    Io Tutorial   Math   Io> 1+1 ==> 2 Io> 2 sin ==> 0.909297 Io> 2 sqrt ==> 1.414214 ...

  3. HDOJ/HDU 1250 Hat's Fibonacci(大数~斐波拉契)

    Problem Description A Fibonacci sequence is calculated by adding the previous two members the sequen ...

  4. 排序算法简介及其C实现

    排序算法(Sorting Algorithm)是计算机算法的一个组成部分. 排序的目标是将一组数据 (即一个序列) 重新排列,排列后的数据符合从大到小 (或者从小到大) 的次序.这是古老但依然富有挑战 ...

  5. Aix项目_shell_rsh_01

    rsh(remote shell) 功能说明:远端登入Shell. 语 法:rsh [-dn][-l <用户名称>][主机名称或IP地址][执行指令] 补充说明:rsh提供用户环境,也就是 ...

  6. Oracle设计规范!

    Oracle设计规范! 一哥们整理的Oracle的设计规范,相当的不错,贴这以备后续之需! 目录 1.数据库模型设计方法规范 1.1.数据建模原则性规范 1.2.实体型之间关系认定规范 1.3.范式化 ...

  7. poj 3465 Corn Fields 状态压缩

    题目链接:http://poj.org/problem?id=3254 #include <cstdio> #include <cstring> #include <io ...

  8. Hadoop Hive概念学习系列之什么是Hive?(一)

    参考  <Hadoop大数据分析与挖掘实战>的在线电子书阅读                   http://yuedu.baidu.com/ebook/d128cf8e33687e21 ...

  9. 创建oracle 密码文件

    orapwd file='$ORACLE_HOME/dbs/oratest' password=oracle entries=5 force=y; 说明:●FILE参数指定口令文件存放的全路径及文件名 ...

  10. Java 8:不要再用循环了

    本文由 ImportNew - 进林 翻译自 deadcoderising.欢迎加入翻译小组.转载请见文末要求. 正如我之前所写的,Java 8中的新功能特性改变了游戏规则.对Java开发者来说这是一 ...