[转 - 改] Perl初级教程 (三)

来源:互联网 发布:淘宝网店推广方法与营销技巧 编辑:程序博客网 时间:2024/05/16 00:20

文件处理

下面是一个简单的perl程序,与UNIX中cat命令对某个文件的操作相同。

#!/usr/local/bin/perl## Program to open the password file, read it in,# print it, and close it again.
$file = '/export/home/dwei/ProgramScriptFolder/TextFile';# Name the fileopen(INFO, $file);# Open the file
#open(INFO,'/export/home/dwei/ProgramScriptFolder/TextFile'); # open函数打开一个文件并进行读操作。第一个参数filehandle是指向文件的句柄。第二个参数为被打开的文件的文件名
@lines = <INFO>;# Read it into an arrayclose(INFO);# Close the fileprint @lines;# Print the array
>

Introducing ideaX Power Sessions
Here is your opportunity to engage in hyper-focused idea-generating sessions to improve Advent’s business! Anthony Sperling is hosting the first session, with two topics:  
First, since referrals from our satisfied clients are a huge source of our new sales, what are some ideas of how we could positively tap into our user community in ways that we are not today?

Secondly, APX has been a big market success for Advent and we still have a very large, opportunity to upgrade our remaining Axys customer base. What are some additional thoughts on how we could encourage more and more Axys clients to move up to our APX solution?

Categories have been created for these topics. Using a category topic, post your ideas or vote and comment on other ideas while the session is active (April 29-May 21). Anthony and his team will then review the ideas and share back with Advent how and when some of the ideas will be put into action. We’ll recognize contributors and adopters.


#open语句也可以对文件进行输出和附加操作。可以在文件名前加>进行输出操作,用>>进行附加操作:

 

 

open(INFO, ">$file"); # Open for output

> [返回空,文件内容也清空]

 


open(INFO ,">>$file");      # Open for appending
print INFO "Hello World!";   # Input the text to file. 
close(INFO);

open(INFILE ,"$file");
@lines = <INFILE>;
close(INFILE);
print @lines;

 

> Hello World ! Hello World !

 


 

 【控制结构
foreach
代码
@FruitList = ("Apple ","Pear ","Orange ","Peach ");
print("\n");
print(@FruitList);
print("\n");
foreach $Item (@FruitList)
{
    
print("\n");
    
print($Item);
}
> Apple
  Pear
  Orange
  Peach
 
 

 for

 

 每次的操作过程被包围在花括号内。程序块中的$Item第一次被赋予@FruitList数组中的第一个值,然后被赋予数组的第二个值,依次类推。如果@FruitList是空的,那么程序块将不会被执行

 

判断

判断是检验表达式结果是真是假的一种结构。在Perl中,任何非0数字和非空字符串被看作真。数字0、0字符串和空字符串被看作假。下面是一些基于数字和字符串的判断

 

$NumberA = 1;
$NUmberB = 2;
if ($NumberA != $NumberB)  # == Is $a numerically equal to $b?
{
    
print("Hello World!");
}
> Hello World!
 

$StrA = "A";
$StrB = "B";

if ($StrA eq $StrB)     # eq :Is $a string-equal to $b?
{
 print("Hello World!");
}              # ne : Is $a string-equal to $b?
else
{
 print("Here!");
}

> Here!
 

 

 【逻辑

 

$StrA = "A";
$StrB = "0";

if ($StrA && $StrB)
{
    
print("Hello World!");
}
else
{
    
print("Here!");
}
 
> Here!
 

$StrA = "A";
$StrB = "0";

if ($StrA || $StrB)
{
 print("Hello World!");
}
else
{
 print("Here!");
}

 > Hello World!
 

$StrA = "A";
$StrB = "0";

if (! $StrB)
{
 print("Hello World!");
}
else
{
 print("Here!");
}

> Hello World!