Perl读写文件&字符串操作

Perl中读写文件的方法非常简单,可以使用open或sysopen函数来打开文件,linux下运行perl脚本只需 ./XX.pl 或 perl XX.pl。

读文件

open(文件句柄, "<文件名");或者 open(文件句柄, "文件名");

如:open (IN, "./test.txt");

  while (<IN>) {

    chomp; #去掉换行符(/n);

    print $_; #perl将每一行赋给“$_”这样一个内置变量里。

  }

  close(IN);

写文件

open(文件句柄, ">文件名"); #覆盖原文件的内容。

open(文件句柄, ">>文件名"); #追加写入文件。

如:open (OUT, "./result.txt");

  my $str = "I love Perl.";

  print OUT "$str\n";

  close(OUT);

PS:在读写文件时,经常伴有对字符串的拆分,这时一个非常有用的函数是split函数,把字符串分割并将结果存入数组中,下面做简单介绍:

perl的split函数使用正则表达式,未特定则工作在$_上。

用法:@array = split (/<reg>/, $line);或@array = split(/<reg>/);

如:$str="Caine:Michael:Actor:14,LeafyDrive";

@array=split(/:/,$str); #@array=("Caine","Michael","Actor","14,LeafyDrive");

  • //之间表示split用到的正则表达式(或分隔法则);
  • \s是一种常用的通配符,代表空格。
  • +代表重复一次或者一次以上;
  • 故\s+代表一个或者一个以上的空格;
  • 字符串比较用“eq” 和“ne”;

  • 字符串连接用 “.” 。

  • 截取字符串:my $substr1=substr("I love Perl",2,5);#截取第三个字符开始的5个字符,即“love ”;