#!/usr/bin/perl -w
#########################################################################
# File Name: test2.pl
# Author: xuehuikuaile
# Created Time: 2018年02月20日
#########################################################################
print "输入输出\n";
#从标准输入设备输入 键盘输入
#while (defined($line=<STDIN>)){
# print "I saw $line \n";
#}
#while (defined($_=<STDIN>)){
# print "I saw $_ \n";
#}
#从<>输入 可能是键盘或者其他,
#如果是执行 ./test2.pl file1.log 就会以log文件输入
#如果是执行 ./test2.pl <file1.log >file2.log, 就是告诉shell
#从file1.log读入,将结果写入到file2.log文件中
#while (defined($line=<>)){
# print "I saw $line \n";
#}
#外部输入参数将保存到@ARGV这个数组中,可以用shift或foreach迭代
print "调用参数 @ARGV\n";
#输出到设备
@array = qw(qwrr asdf 123.12);
print "@array\n";
printf("array[2]: %d\n", $array[2]);
#利用X复制运算符,直接将数组作参数给入
printf("array:"."%10s"x@array."\n", @array);
#文件句柄
#使用open打开文件file1.log,文件句柄为FD,使用close关闭文件句柄
#得到句柄后,根据<FD>即可读取文件内容
#错误退出使用 die, $!能给出错误原因
#给出警告使用 warn, 和die一样,只是不会退出程序
$openFlag = open(FD1, "<file1.log");
if($openFlag){
print "打开文件成功\n";
@lines =<FD1>;
print "打开文件内容:\n";
print "@lines\n";
open(FDW, ">>file3.log");
printf(FDW "写入内容:@lines");
close FDW;
close FD1;
}else{
die "打开文件失败: $!\n";
}
print "no die\n";
#使用readline 读取文件每一行的内容
open(FD2, "<file1.log") or die "can't open this file: $!";
$lineNum = 1;
foreach $lineContext (readline FD2){
print "line $lineNum: $lineContext";
$lineNum++;
}
close FD2;
#!/usr/bin/perl -w
#########################################################################
# File Name: test5.pl
# Author: kevin xiang
# Created Time: 2014年07月08日 星期二 16时06分43秒
#########################################################################
print "文件夹操作\n";
#chdir 切换文件夹
#chdir "/root";
#glob 文件名模式匹配
@root_files = glob "*.deb";
print "root dir files: @root_files\n";
#<*> 支持多个参数, 输出/opt 和 /root下的内容
@opt_files = </opt/* /root/*>;
print "opt dir files: @opt_files\n";
#目录句柄 opendir readdir closedir
$dir = "/root";
opendir(FD, $dir) or die "can't open $dir: $!";
$fileNum = 1;
foreach $file (readdir FD){
print "file $fileNum: $file\n";
$fileNum++;
}
closedir FD;
#删除文件 unlink, 返回值为成功删除文件的个数
unlink "1.rm" or warn "remove this file fail: $!";
unlink glob "*.rm";
#删除目录
rmdir "dirrm";
#创建目录
mkdir "dirrm2",0755;
#mkdir "dirrm2",oct(0755);
#重命名文件
rename "name.log","name2.log" or warn "rename file fail: $!";