Perl语法感觉比较怪异,类似php,jquery,爱用$, 另外感觉其很多特点来自Unix系统:
use utf8;
binmode(STDOUT,":encoding(gbk)");
$a=10;
$var=<<"GOF"; //也可以不用EOF,只要首尾对应即可
这是一个here文档实例,使用双引号。
可以在这里输入字符串和变量。
例如:a=$a
GOF
print "$var\n";
$var=<<'DOF';
这也是一个Here文档实例,使用单引号
例如: a=$a;
DOF
print "$var\n";
据说特别擅长文本处理,原生支持正在表达式,原生报表抽取语言
#创建并写入文件
use strict;
use warnings;
open(my $fh, '>', 'report.txt') or die; ##append模式下,‘>'改成'>>'
print $fh "my first report generated by perl\n";
close $fh;
print "done\n";
#读取文件
use strict;
use warnings;
my $filename = "debug.txt";
open(my $fh, '<:encoding(UTF-8)', $filename)
or die "could not open file '$filename' $!";
while(my $row=<$fh>){
chomp $row;
print "$row\n";
}
#字符串修改
use strict;
use warnings;
my $filename='debug.txt';
my $data=readFile($filename);
$data=~ s/exact_case/enviorment/g; #~s/待更改的字符串/要替换成的字符串/g, 两个字符串之间无空格
writeFile($filename, $data);
print "done\n";
exit;
sub readFile{
my ($filename)= @_;
open my $in, '<:encoding(UTF-8)', $filename or die "could not open '$filename'";
local $/=undef;
my $all=<$in>;
close $in;
return $all;
}
sub writeFile{
my($filename, $content)= @_;
open my $out, '>:encoding(UTF-8)', $filename or die "could not open '$filename'";
print $out $content;
close $out;
return;
}