1.4 文件句柄
文件句柄只是你给文件,设备,网络套接字或管道起的一个名字,这样可以帮助你分清你正在和那个文件或设备通讯,同时掩藏了如缓冲等复杂性。
你可以使用 open 创建并关联一个文件。open 函数需要至少两个参数:文件句柄和你希望与文件句柄关联的文件名。Perl 也给你一些预定义(并且预先打开)的文件句柄。STDIN 是我们程序的标准输入,
STDOUT 是标准输出。STDERR 标准错误输出。
因为你可以用 open 函数创建用于不同用途(输入,输出,管道)的文件句柄,因此你必须指定你需要哪种类型。
open(SESAME, "filename") # 从现存文件中读取
open(SESAME, "<filename") # (一样的东西,明确地做)
open(SESAME, ">filename") # 创建文件并写入
open(SESAME, ">>filename") # 附加在现存文件后面
open(SESAME, "| output-pipe-command") # 设置一个输出过滤器
open(SESAME, "input-pipe-command |") # 设置一个输入过滤器
close(SESAME) 来关闭文件句柄或者另外一个 open 语句将文件句柄同别的文件关联起来。打开一个已经打开的文件句柄隐含地关闭第一个文件。
从控制台输入一个数字的做法,注意用 <STDIN>,带尖括号
print STDOUT "Enter a number: "; # 请求一个数字
chomp($number = <STDIN>); # 输入数字
print STDOUT "The number is $number.\n"; # 打印该数字
1.5 操作符
Perl 的操作符大多数直接取自 C,FORTRAN,sed (1) 和 awk (1)。下面列出一些与 C 比有些特别的操作符。
$a ** $b 幂 取 $a 的 $b 次幂
print 123 . 456; # . 连接操作符,打印 123456
print 123 x 3; # x 重复操作符,打印 123123123
$val ||= "2"; # 如果 $val 不为真则把它设置为 2
($temp -= 32) *= 2; # perl 还可以这么写,相当于 $temp=($temp-32)*2;
1.5.5 逻辑操作符
Perl 有两组逻辑操作符,一组借鉴了 C(!/&/|/&&/||) ,另一组借鉴了 BASIC(not|and|or|xor)。
Perl 的逻辑操作符并不是返回真(true/1)或假(false/0),而是返回最后触及到的操作数,如:
print 100 && 200 ; # 输出 200
print 200 && 100 ; # 输出 100
open(GRADES, "grades") or die "Can't open file grades: $!\en"; #这个常用
1.5.6 比较操作符
比较操作符也有两组,符号(==|!=|<|>|<=|>=|<=>),字串(eq|ne|lt|gt|le|ge|cmp)。<=>|cmp 相当于 java 的 compareTo() 操作,相等时为 0,如果 $a 大为 1 如果 $b 大为 -1,在 sort 函数中,它们非常有用。
1.5.7 文件测试操作符
-e $a 存在,-r $a 可读 ,-w $a 可写,-d $a 目录,-f $a 文件,-T $a 文本文件
一个例子(留意一下 or/and 操作和 warn 输出信息):
-e "/usr/bin/perl" or warn "Perl is improperly installed\n";
-f "/vmlinuz" and print "I see you are a friend of Linus\n";
本文链接 https://yanbin.blog/perl-overview-3/, 来自 隔叶黄莺 Yanbin Blog
[版权声明] 本文采用 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 进行许可。