Perl語言總結(2)

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";

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章