寒假【perl语言学习脚本】13.1 13.2 13.3 13.4 13.5 13.6 13.7 13.8

在这里插入图片描述
#!/usr/bin/perl -w
print “which directory?(Default is your home directory)”;
chomp(my d i r = &lt; S T D I N &gt; ) ; i f ( dir=&lt;STDIN&gt;); if( dir=<STDIN>);if(dir=~/\A\s*\Z/){#空白行
chdir or die “can’t chdir to your home directory:$!”;
}else{
chdir d i r o r d i e &quot; c a n ′ t c h d i r t o ′ dir or die &quot;can&#x27;t chdir to &#x27; dirordie"cantchdirtodir’:KaTeX parse error: Expected 'EOF', got '}' at position 6: !"; }̲ my @files=<*>…_\n";
}

#首先,我们会显示一个简单的提示,然后取得用户想要的目录,对它进行必要的chomp
#如果没有chomp,则会尝试转到一个名称结尾有换行符的目录,chdir函数不能自动帮你把换行符去掉
#接下来,如果目录不是空的,我们会切换到该目录下,遇到错误就中断执行,如果名称是空的,就以用户主目录来代替
#最后,使用星号的glob操作会返回(新)工作目录中所有的文件名,并自动按字母顺序排序,然后逐一输出

在这里插入图片描述
#!/usr/bin/perl -w
#!/usr/bin/perl -w
print “which directory?(Default is your home directory)”;
chomp(my d i r = &lt; S T D I N &gt; ) ; i f ( dir=&lt;STDIN&gt;); if( dir=<STDIN>);if(dir=~/\A\s*\Z/){#空白行
chdir or die “can’t chdir to your home directory:$!”;
}else{
chdir d i r o r d i e &quot; c a n ′ t c h d i r t o ′ dir or die &quot;can&#x27;t chdir to &#x27; dirordie"cantchdirtodir’:KaTeX parse error: Expected 'EOF', got '}' at position 6: !"; }̲ my @files=<.*…\n";
}
#和前一题有两点差别,第一,这次的glob操作符包含了“点号星号”,它会匹配所有以点号开头的文件名
#第二,我们必须对所得到的的列表进行排序,因为取出的列表中,以点号开头的文件名会和不以点号开头的文件名交错排列
#看起来比较凌乱,排序之后会清楚很多
在这里插入图片描述
#!/usr/bin/perl -w
print “which directory?(Default is your home directory)”;
chomp(my d i r = &lt; S T D I N &gt; ) ; i f ( dir=&lt;STDIN&gt;); if( dir=<STDIN>);if(dir=~/\A\s*\Z/){
chdir or die “can’t chdir to your home directory:$!”;
}else{
chdir d i r o r d i e &quot; c a n ′ t c h d i r t o ′ dir or die &quot;can&#x27;t chdir to &#x27; dirordie"cantchdirtodir’:KaTeX parse error: Expected 'EOF', got '}' at position 6: !"; }̲ opendir DOT,"…!";
foreach (sort readdir DOT){
#next if /\a./;#如果跳过文件名以点号开头的文件
print "$
\n";
}
#如果你在前题使用的是目录句柄,用文件名匹配重写一次
#如果使用的是文件名通配,用目录句柄重写一次
#这个程序的结构跟前两题一样,但是现在我们改用打开目录句柄的方式,
#变更工作目录之后,我们会打开当前目录,也就是DOT目录句柄
#为什么要用DOT呢?
#如果用户输入了像/etc这样的绝对目录名称,那么打开它并没有什么问题,
#但是,如果用户键入了像fred这样的相对目录名称呢?
#readdir函数会取得目录里所有的文件名,然后再由程序将他们排序输出
#如果用这种方式来做第一题,那么我们就应该略过文件名以点号开头的文件
#要这么做,只需把foreach循环里的注释去掉就行了
#readdir类型的函数不一定要当前目录,其实可以作用在任何目录上

在这里插入图片描述
#!/usr/bin/perl -w
foreach(@ARGV){
unlink o r w a r n &quot; c a n ′ t u n l i n k ′ _ or warn &quot;can&#x27;t unlink &#x27; orwarn"cantunlink':KaTeX parse error: Expected 'EOF', got '\n' at position 16: !,continuing...\̲n̲"; } #如果想在程序遇到问…,然后称为unlink的参数
#如果其中出现问题,警告信息能提供线索

在这里插入图片描述
#!/usr/bin/perl -w
use File::Basename;
use File::Spec;
my( s o u r c e , source, source,dest)=@ARGV;
if (-d $dest){
my $basename =basename $source;
d e s t = F i l e : : S p e c − &gt; c a t f i l e ( dest=File::Spec-&gt;catfile( dest=File::Spec>catfile(dest,$basename);
}
rename s o u r c e , source, source,dest or die "can’t rename ‘ s o u r c e ′ t o ′ source&#x27; to &#x27; sourcetodest’:KaTeX parse error: Expected 'EOF', got '\n' at position 2: !\̲n̲"; #功能类似mv,将命令行…dest是目录,我们需要从 s o u r c e 名 称 中 取 出 文 件 基 名 , 并 将 它 附 加 到 source名称中取出文件基名,并将它附加到 sourcedest后面
#最后,一旦$dest经过必要的处理,rename函数会执行实际改名的动作

在这里插入图片描述

#!/usr/bin/perl -w
use File::Basename;
use File::Spec;
my( s o u r c e , source, source,dest)=@ARGV;
if (-d $dest){
my $basename =basename $source;
d e s t = F i l e : : S p e c − &gt; c a t f i l e ( dest=File::Spec-&gt;catfile( dest=File::Spec>catfile(dest,$basename);
}
link s o u r c e , source, source,dest or die “can’t link ‘ s o u r c e ′ t o ′ source&#x27; to &#x27; sourcetodest’?!\n”;
#功能类似ln,建立从第一个参数到第二个参数的硬链接
#这个程序和前一题的十分相似,唯一的差别在于这次执行的是link而非rename

在这里插入图片描述
#!/usr/bin/perl -w
use File::Basename;
use File::Spec;
my s y m l i n k = symlink= symlink=ARGV[0] eq ‘-s’;
shift @ARGV if s y m l i n k ; m y ( symlink; my( symlink;my(source,$dest)=@ARGV;
if (-d $dest){
my $basename =basename $source;
d e s t = F i l e : : S p e c − &gt; c a t f i l e ( dest=File::Spec-&gt;catfile( dest=File::Spec>catfile(dest,KaTeX parse error: Expected 'EOF', got '}' at position 12: basename); }̲ if (symlink){
symlink s o u r c e , source, source,dest or die “can’t make soft link ‘ s o u r c e ′ t o ′ source&#x27; to &#x27; sourcetodest’?!\n”;
}else{
link s o u r c e , source, source,dest or die "can’t make hard link from ‘ s o u r c e ′ t o ′ source&#x27; to &#x27; sourcetodest’:KaTeX parse error: Expected 'EOF', got '\n' at position 2: !\̲n̲"; } #开头几行程序代码(…symlink变量中
#如果检查到了-s,我们还得把它去掉
#最后,依照$symlink的值是真是假,程序会选择建立硬链接或者软连接
#最后,还更改了die后面的信息,让它清楚地显示出我们试图建立的是哪一种链接
#-s选项,建立软连接,而非硬链接
在这里插入图片描述

#!/usr/bin/perl -w
foreach(glob(’.* ‘)){
my $dest=readlink ; p r i n t &quot; _; print &quot; ;print"_->$dest\n" if defined KaTeX parse error: Expected 'EOF', got '}' at position 8: dest; }̲ #表达式 .* 就是单个字符…_的值
#如果这个条目是软连接,那么就会由readlink返回一个已定义的值并输出链接位置
#如果不是,测试条件就会失败,从而使得程序略过这个条目
#让它在当前目录下查找所有符号链接并输出它们的值,和ls -l的格式一样:name->value
#glob(’.
*’)这个地方中间有空白

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
毕业设计,基于SpringBoot+Vue+MySQL开发的纺织品企业财务管理系统,源码+数据库+毕业论文+视频演示 在如今社会上,关于信息上面的处理,没有任何一个企业或者个人会忽视,如何让信息急速传递,并且归档储存查询,采用之前的纸张记录模式已经不符合当前使用要求了。所以,对纺织品企业财务信息管理的提升,也为了对纺织品企业财务信息进行更好的维护,纺织品企业财务管理系统的出现就变得水到渠成不可缺少。通过对纺织品企业财务管理系统的开发,不仅仅可以学以致用,让学到的知识变成成果出现,也强化了知识记忆,扩大了知识储备,是提升自我的一种很好的方法。通过具体的开发,对整个软件开发的过程熟练掌握,不论是前期的设计,还是后续的编码测试,都有了很深刻的认知。 纺织品企业财务管理系统通过MySQL数据库与Spring Boot框架进行开发,纺织品企业财务管理系统能够实现对财务人员,员工,收费信息,支出信息,薪资信息,留言信息,报销信息等信息的管理。 通过纺织品企业财务管理系统对相关信息的处理,让信息处理变的更加的系统,更加的规范,这是一个必然的结果。已经处理好的信息,不管是用来查找,还是分析,在效率上都会成倍的提高,让计算机变得更加符合生产需要,变成人们不可缺少的一种信息处理工具,实现了绿色办公,节省社会资源,为环境保护也做了力所能及的贡献。 关键字:纺织品企业财务管理系统,薪资信息,报销信息;SpringBoot
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值